openfire 3.9.3
strophe.js 1.3
apache http 2.2.25
所以的安装都是在本机
1.openfire的安装
解压官网的压缩包,直接运行bin中的启动文件,依据向导设置即可,没有特别需要注意的地方
2.web连接,如果不在同一个域,则需要设置带来,参照网上的nagix没设置成功,apache设置如下
ProxyRequests Off
ProxyPass /http-bind http://127.0.0.1:7070/http-bind/
ProxyPassReverse /http-bind http://127.0.0.1:7070/http-bind/
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
打开注释了的代理模块
注:当用web请求时,可以查看apache的日志, 看是否日志记录已通过代理访问,判断是代理没配置对问题还是xmpp服务器问题
3.bosh连接,openfire需要在HTTP设置中打开bosh相关属性为true,界面上面配置很清楚明了.
4.解压strophe.js,将examples文件夹直接放到web项目中的webroot中,
打开basic.js设置
var BOSH_SERVICE = 'http://localhost/http-bind'; //默认会通过代理请求到http://127.0.0.1:7070/http-bind/
5.浏览器访问basic.html
输入jid:如 test@localhost 密码
需有此用户存在
当点击connect的时候,openfire日志会提示错误如下:
2014.10.26 11:39:48 org.jivesoftware.openfire.http.HttpBindServlet - Client provided invalid session: 6c9e5f4. [127.0.0.1]
strophe的响应xml时:not-验证
一直通过搜索这些信息查询,最后还是没有找到原因。
最后ecplise中调试openfire源码,发现是javax.security.sasl.SaslException: DIGEST-MD5: digest response format violation. Mismatched URI: xmpp/localhost; expecting: xmpp/mydomain
(mydomain是openfire的域名)
将登陆的jid修改为test@mydomian 既可以正常访问和接受消息