转使用openfire+jwchat 构建即时通信! 连接超时问题!

本文介绍了一个基于Openfire和JWChat的客服系统在测试过程中遇到的客户端超时问题。通过排查发现,问题根源在于Openfire的ClientConnectionHandler.java类中的xmpp.client.idle参数设置不当导致。修改该参数后,成功解决了客户端6分钟后自动提示“服务不可用”的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近公司的一个客服系统(架构基于openfire+jwchat)基数上改造的,测试的时候发现WEB客户端6分钟不操作,客户端自动弹出“服务不可用”消息,一开始检查了并修改了JWCHAT 中JSJAC 和JabberHTTPBind 好像都没有用,怀疑是在OPENFIRE 中设置的。

    今天一同事帮忙查找问题,最后发现该超时修改的地方在openfire中,ClientConnectionHandler.java 类中xmpp.client.idle 参数设置时间超时,修改后生效。在这里感谢同事“dracularking”(博客 http://dracularking.iteye.com/)发现该问题 呵呵。

JWChat源码 1、首先配置jwchat要具备的环境(我开发的环境) tomcat7.0 jdk1.7 openfire3.9.3 2.在网上查找下在jwchat.war文件,将其解压后放到tomcat目录下的webapps下 3.下载xalan的xalan.jar,serializer.jar, xercesImpl.jar, xml-apis.jar放到webapps\jwchat\WEB-INF\lib目录下即可。 4.修改配置文件 config.js 复制代码 1 var SITENAME = "127.0.0.1";//127.0.0.1是你openfire服务器的名称 2 var BACKENDS = 3 [ 4 { 5 name:"Open Relay", 6 description:"HTTP Binding backend that allows connecting to any jabber server", 7 httpbase:"/jwchat/JHB/", 8 type:"binding", 9 default_server: SITENAME 10 } 11 ]; 复制代码 jsjac.js 在302行if(this.has_sasl)前加this.has_sasl=false; web.xml 1 <servlet-mapping> 2 <servlet-name>Jabber HTTP Binding Servlet</servlet-name> 3 <url-pattern>/JHB/</url-pattern> <!--这里的修改主页是对应上面的config.js,如果config.js的httpbase配置是/jwchat/,那这里的就不用修改了 --> 4 </servlet-mapping> (黄色表示要修改的部分) 5.启动tomcat ,访问http://l127.0.0.1:8080/jwchat/ (切记如果你的openfire服务器名称为127.0.0.1,访问jwchat时浏览器输入127.0.0.1,如果输入localhost则会报Authorization failed),我就是因为这个问题烦恼了很长一段时间。 <报错修改> 1.如果报Service unavailable A.可能是openfire没有启动 B.config.js中的var SITENAME = "127.0.0.1";没有与openfire服务器名称相同   2修改openfire服务器名称 A.点击服务器,服务器管理器,编辑属性 修改服务器名称,修改完的服务器名称前有感叹号 B.出现叹号,我们要删除安全证书,点击服务器,服务器设置,服务器证书删掉这里的证书。 C.删除后,在当前页面会出现提示,然后按照提示点击相应的链接,重启服务器,然后登陆,再生成证书 D.然后生成完成后,手动重启openfire服务器,再次登陆发现警告没有了。 3. 在服务器端增加配置 xmpp.httpbind.client.requests.polling = 0 xmpp.httpbind.client.requests.wait = 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值