openfire杂项(小而重要)

1、在安装openfire时,要把mysql设置为不区分大小

在Linux 中 /etc/my.cnf 文件中  在[mysqld]下面加上lower_case_table_names=1

 

如果不修改此设置 mysql的表 ofUser与ofuser是同时存在的

 

2、 在配置openfire时,遇到“域”的时候要注意

 

这个域的作用类似域名的作用,默认为计算机名称,不能乱起(我们用的是xyb.com),如果修改其他终端不能聊天(XMPP的from与to属性的结构就是 用户名@域)

 

3、在openfire数据库中ofproperty数据表中,字段name为admin.authorizedJIDs相对应的字段propValue的值为openfire后台系统登录的用户,格式为“用户名@域”,多个用户用英文逗号分隔

4、使用

importorg.jivesoftware.database.DbConnectionManager;

Connection conn = DbConnectionManager.getConnection();

 

可以返回openfire所配置的数据库连接,需要导入openfire.jar,一般在编写openfire插件时使用

 

 

5、 一般情况下,主要调试与修改的类是在openfire包下面的,如图


(非一般情况我也没遇到过)

 

6、openfire消息入口方法是

openfire/nio/ConnectionHandler.java中的

 

messageReceived(IoSessionsession, Object message)

exceptionCaught(IoSessionsession, Throwable cause)

 

前者是正常的消息处理,后者是错误的消息处理

在这两个方法打断点可以得到XMPP最初的内容

 

7、 包openfire/muc定义了有关聊天室的功能

8、 包openfire/auth定义了有关身份验证的功能(登录用户名密码验证等)

9、 包openfire/vcard定义了有关个人信息的功能(包括头像与基本资料),相应的数据库表为ofvcard

10、             包openfire/user定义了有关用户的功能,相对应的数据库表为ofuser

11、             目前关于可自定义替换的类(继承或实现系统类)有

openfire/vcard/DefaultVCardProvider.java          有关资料

openfire/user/DefaultUserProvider.java               有关用户

openfire/auth/DefaultAuthProvider.java                     有关身份验证

 

12、如果想不重新编译openfire而重新部署openfire的话,可以修改openfire的配置文件 在openfire源码项目下openfire\target\openfire\conf\openfire.xml文件

在文件中的最下面把<setup>true</setup>修改为<setup>false</setup>后重启openfire即可,同样,该文件也定义了一些openfire有关的基本配置,比如数据库连接

 

13、离线消息如果是语音的话(我们的语音实现其实传递的也是字符串),因为数据长度过大,所以需要把openfire数据表ofoffline字段stanza类型修改为longtext,否则离线语音不能正常保存

14、linux下安装openfire的默认路径为/opt/openfire

15、编写openfire消息拦截插件时,方法public void interceptPacket(Packet packet, Session session,   boolean incoming, boolean processed)中的第四个参数代表是否已拦截,false没有被拦截,所以做聊天记录时当processed为false才进行消息处理

2015-09-09添加

16、如果需要丢弃拦截到的消息,可以跑出PacketRejectedException异常

2015-10-27添加

17、在处理openfire自认证表登录的时候,不仅仅需要处理登录,也需要处理查询用户,因为它们彼此有依赖,单独处理会产生许多问题


持续更新.....................

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值