STROPHE BOSH服务器配置
为了让浏览器具有与xmpp通信的能力,简单几步就可实现,前提是先搭建好XMPP服务器。以下是以openfire为例,详细说明配置XMPP+BOSH服务器的方法。
1. 进入Openfire 服务器后台启用HTTP绑定
2. 开通服务器7070端口,添加一行iptables的记录,重启服务,重启openfire。
# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp -p tcp --dport 7070 -j ACCEPT
# service iptables restart
# /etc/init.d/openfire restart #等待10几秒
3. 浏览器输入 http://hostname:7070 检查是否开通。
4. 设置apache代理转发,让javascript拥有跨域通信的能力,CROS。
#0 打开apache httpd.conf文件,在文件最后添加。
#1第一种方式, 反向代理方式
ProxyRequests Off
ProxyPass /http-bind/ http://127.0.0.1:7070/http-bind/
ProxyPassReverse /http-bind/ http://127.0.0.1:7070/http-bind/
JS客户端连XMPP地址
BOSH_SERVICE =“http://remote.com/http-bind/”
#2 第二种方式,重写URL规则
<VirtualHost *>
AddDefaultCharset UTF-8
RewriteEngine On
RewriteRule ^/http-bind/ http://127.0.0.1:7070 [P]
</VirtualHost>
JS客户端连XMPP地址
BOSH_SERVICE =“http://remote.com:7070/http-bind/”
重启APACHE服务器,访问BOSH_SERVICE测试是否生效。
测试结果
JS浏览器端
Spark IM 客户端
参考连接:
Strophe 文档
http://strophe.im/strophejs/doc/1.2.2/files/strophe-js.html#Strophe.Builder.c
XMPP协议文档
http://wiki.jabbercn.org/RFC3921#.E9.99.84.E5.BD.95_C._Jabber_IM_Presence.E5.8D.8F.E8.AE.AE.E5.92.8CXMPP.E4.B9.8B.E9.97.B4.E7.9A.84.E4.B8.8D.E5.90.8C
http://wiki.jabbercn.org/RFC6120#.E5.85.A8.E5.B1.80.E5.9C.B0.E5.9D.80
下载JS端测试代码:
git@github.com:arist1213/stropheHttpBindOpenfire.git