2015年6月26日 星期五

xmpp js端跨域请求

xmpp js端跨域请求

字数322 阅读279 评论0 
在构建xmpp web客户端的时候, 如果网站和xmpp服务器的域名不一致,就需要用到跨域请求了。

flXHR.js

可以使用 flXHR.js 这个库来实现跨域请求,因为使用了 strophe,所以需要加载以下两个js。之后会在 strophe 中会使用 flxhr 来发起请求。

domaincross.xml

使用 flxhr 请求, 需要服务器在根目录返回 domaincross.xml 文件, 具体格式点这 ---> 文档链接

ejabberd 配置文件服务器

ejabberd 的 mod_http_fileserver 组件是专门用来配置文件服务器的组件
但是 mod_http_fileserver 有一个问题:
在加入 mod_http_fileserver 后, web_admin(web admin管理)功能失效了, google 后发现为 ejabberd 的 bug.
想到的解决的办法,是另外一个端口启动 web_admin。
具体配置方法如下:
1.编辑 ejabberd 配置文件, 将 {5280, ejabberd_http, 开头的这段配置替换成
{5280, ejabberd_http, [
    %%captcha, 验证码功能
    %%http_poll
    %%web_admin,
    {request_handlers, [
          {["http-bind"], mod_http_bind},
          {[], mod_http_fileserver}
     ]}
]},
{5281, ejabberd_http, [
    web_admin
]}
2.将 {mod_http_fileserver, 开头的一段替换为以下,
  {mod_http_fileserver, [
    {docroot, "/Applications/ejabberd-14.05/www"},
    {accesslog, "/Applications/ejabberd-14.05/www/webaccess.log"},
    {content_types, [{".xml"}]}
  ]},
记得把路径替换成你的。
3.在 /Applications/ejabberd-14.05/www 路径下加入 domaincross.xml

OK了, 现在可以用 strophe 来连接你的 xmpp 服务器了

沒有留言:

張貼留言