导航:首页 > 源码编译 > openfire服务器源码下载

openfire服务器源码下载

发布时间:2022-05-31 07:51:29

‘壹’ GitHub上面有哪些经典的java框架源码

‘贰’ openfire做服务器,网页客户端怎么做

如果你下载的是exe文件,执行你的安装文件,进行安装。这里我是zip的文件。解压后,复制openfire目录到F:\Program Files (x86)\Openfire目录(自己平常安装软件的路径下就可以)下, 这样openfire就安装完成了。

下面我们启动openfire服务器,并配置它。在F:\Program Files (x86)\Openfire\bin目录下有一个电灯泡的openfire.exe文件,双击执行,启动完成后可以看到

.点击Launch Admin按钮进入http://127.0.0.1:9090/setup/index.jsp页面,配置openfire服务器。

选择简体中文版——配置服务器域名(一般都是本机自己的名称,我的是txw-pc,其他不变)——数据库设置(选择Openfire自带的)——管理员账户可以跳过——完成

登录到Openfire管理控制台,初始用户名admin,密码admin.

服务器名称就是jwchat的连接地址;你可以使用Spark、jwchat链接这个地址进行IM通信聊天……

.测试,使用我下面下载的的一个源码MyXmpp.zip测试。解压导入Eclipse之后,将下图中XmppTool.java中的IP地址改为你自己主机的IP地址就行

天互数据 为您解答,希望能帮到你

‘叁’ openfire怎么不修改源码加入消息回执

遵循原则:
1.message 消息的id由服务端或者客户端统一生成,采用全球唯一id生成策略。
2.客户端收到 message消息后必须回执服务端
3.取消openfire服务器消息总是存储的设置
4.设置openfire离线表ofoffline的messageId字段为字符串类型
实现:
创建openfire组件类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.component.Component;
import org.xmpp.component.ComponentException;
import org.xmpp.component.ComponentManager;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.xmpp.packet.Packet;

/**
* 处理 回执信息
*
* @author longyingan
*
*/
public class ReceiptComponent implements Component {
private static final Logger log = LoggerFactory.getLogger(ReceiptComponent.class);

private final static String name = "receiptComponent";

@Override
public String getDescription() {
return null;
}

@Override
public String getName() {
return name;
}

@Override
public void initialize(JID jid, ComponentManager componentManager)
throws ComponentException {

}

@Override
public void processPacket(Packet packet) {

if (packet instanceof Message) {
if (packet.getTo() != null
&& packet.getTo().getDomain()
.startsWith("receipt")) { // 群消息回执
Message message = (Message) packet.createCopy();
// 获取消息 id 和 用户
String messageId = message.getID();
String username = message.getFrom().getNode();
// 删除离线消息
if (!StringUtils.isEmpty(messageId)){
//TODO 删除openfire离线表的对应数据
}
}
}
}

@Override
public void shutdown() {

}

@Override
public void start() {

}

}

创建消息拦截类,把所有message消息存储离线:

import java.util.Date;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import org.dom4j.QName;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.interceptor.PacketInterceptor;
import org.jivesoftware.openfire.interceptor.PacketRejectedException;
import org.jivesoftware.openfire.session.Session;
import org.jivesoftware.util.XMPPDateTimeFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.xmpp.packet.Packet;

/**
* 搜索引擎拦截器
* @author longyingan
*
*/
public class SearchEngineInterceptor implements PacketInterceptor {

private static final Logger log = LoggerFactory.getLogger(SearchEngineInterceptor.class);
Random m_rndGen = new Random();
@Override
public void interceptPacket(Packet packet, Session session,
boolean incoming, boolean processed) throws PacketRejectedException {

// 程序执行中;是否为结束或返回状态(是否是当前session用户发送消息)
if (processed || !incoming) {
return;
}

if (packet instanceof Message) {
if(packet.getTo()!=null
&& !XMPPServer.getInstance().getServerInfo().getXMPPDomain().equals(packet.getTo().getDomain())
||("receipt."+XMPPServer.getInstance().getServerInfo().getXMPPDomain()).equals(packet.getFrom().getDomain()))
return ;

//TODO 1.存储消息到openfire 离线表
//TODO 2.如果message 没有 id 则产生一个保持
//TODO 3.根据自己的业务判断哪些需要存储,哪些不需要

}
}

}

好,到这来服务端的两个主要类代码已经完成。下面写个客户端如何测试的例子(只是一个简单事例,可能用的时候不是这样的哈):

Chat chat = ChatManager.getInstanceFor(connection).createChat(
"xxx服务器的域", new MessageListener() {
public void processMessage(Chat chat,Message message) {
System.out.println(message.toXML());
Message rep = new Message();
rep.setFrom(message.getTo());
rep.setTo("receipt." + message.getFrom());
rep.setPacketID(message.getPacketID());
rep.setBody("null");
rep.setType(Type.chat);
try {
connection.sendPacket(rep);
} catch (NotConnectedException e1) {
e1.printStackTrace();
}
}
});

‘肆’ 如何在Linux下安装openfire及解决一些常见的安装问题

1、首先下载OpenFire的Linux安装包
2、将下载的安装包复制到linux服务器的/opt目录下
3、启动openfire
安装完成后,进入/opt/openfire/bin目录。
如果你是用rpm进行安装的,执行./openfire.sh,
如果你使用tar进行安装的,执行./openfire start。
4、打开浏览器,http://[服务器ip地址]:9090/,进入配置页面
(1)首先选择语言,当然是中文
(2)其次配置域ip和控制台端口,端口默认是9090
(3)然后选择数据库连接
i.“嵌入的数据库”就是使用OpenFire自带数据库;
ii. “标准数据库连接”是连接外部数据库,我是连接外部Mysql数据库
(4)进入“标准数据连接”配置页面,配置Oracle连接;配置后会在外部数据库中创建表和字段;
(5)进入用户和组配置界面,
i. “初始配置”既在数据库中保存用户和用户组资料
ii.“目录服务器(LDAP)”就是使用外部LDAP服务器来管理
(6)进入管理员密码配置界面,修改管理员密码
注意:登录的时候,用户名是admin,不是设置的邮箱。
5、常见问题及解决方案
(1)启动openfire时,出现下面的错误提示:
./openfire.sh: /opt/openfire/jre/bin/java: /lib/ld-linux.so.2: bad ELF inter
这个错误是系统版本造成的,系统是64位的,而安装包是32位的。

‘伍’ 为什么openfire与spark连接不上

5.2前提条件 1.以下配置过程全部在root权限下配置,请切换到root权限下操作。 2.下载的源码包是不带java环境的,需要自行安装java环境,需要的java环境必须是java5以上版本,可以使用(aot-get install sun-java5-jdk)命令来安装

‘陆’ 把openfire源码导入后出现错误 com.tangosol.ut ,找不到这个包

貌似遇到过,没记错的话 这个应该是在cluster 集群那个插件中的包。

openfire的集群需要依赖Oracle的coherence.jar、coherence-work.jar、tangosol.jar包,你可以在网上找找这几个包,或者oracle的网站上应提供下载的,进行配置后,就不会出现lz说的情况了。

‘柒’ 怎么学习openfire源代码

首先看一下它的启动脚本,启动脚本中最后运行的类是org.jivesoftware.openfire.starter.ServerStarter。这个类的最最重要的作用是创建org.jivesoftware.openfire.XMPPServer的实例。

org.jivesoftware.openfire.XMPPServer这个类是一个关键的类,它完成了读取配置文件(app_home/conf/openfire.xml),启动相应模块,装载plugin的功能。

但是openfire的package和class实在是太多了,不知道从何处下手。后来从网上的资料得知,openfire在底层使用了apache
mina做通讯库。于是研究了一下apache mina。

发现网络文库是个好东东,里面有一些有价值的介绍apache mina的文章。推荐两篇文章:

Apache Mina入门 http://wenku..com/view/5454ed630b1c59eef8c7b47c.html

Apache Mina Server2.0中文参考手册 http://wenku..com/view/2cd0cdd376eeaeaad1f33028.html

‘捌’ openfire服务器端是否保存聊天记录

不保存的,openfire只保存离线的消息,例如用户不线 你发送消息后会保存,如果正常发送的消息根本没有保存,可以自己修改源码或者写插件

‘玖’ 如何发布二次开发后的openfire源码到linux服务器中

exe和rpm形式的安装包,分别是windows和linux下带JRE的安装文件,此种打包方式目前还没搞定。 目前不带JRE的包,比如linux下的tar.gz,内容其实就是执行ant编译后,生成的target目录下的openfire. 此目录在windows和linux下均可正常运行。

阅读全文

与openfire服务器源码下载相关的资料

热点内容
程序员被逮捕的判决 浏览:813
android定位获取城市 浏览:599
做服务器客户怎么去找 浏览:997
程序员升职可以干什么 浏览:301
单片机原理课程设计大纲 浏览:909
cad命令大全图表下载 浏览:389
程序员去印度工作 浏览:422
苹果app活动怎么导出 浏览:3
pdf转高清图片 浏览:33
人人玩棋牌源码 浏览:345
如何获取美团服务器时间 浏览:342
php简单加密算法 浏览:793
什么是开服务器 浏览:607
cd4017单片机怎么用 浏览:265
鸟哥pdf 浏览:242
忘记加密的密码了怎么办 浏览:560
好友信息提示音在哪个文件夹 浏览:276
怎么让云服务器转发本地端口 浏览:47
python数组剔除元素 浏览:16
推荐一款解压的手机游戏 浏览:48