1

我正在尝试创建自定义 Facebook 聊天,我正在使用:

  1. 埃贾伯德
  2. 语气
  3. 阿帕奇

apache 在一台电脑上,而 ejabberd 在另一台机器上,我使用代理我的请求

<Proxy *>
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
</Proxy>
ProxyPass /http-bind http://my_bosh_domain:5280/http-bind/ nocanon
ProxyPassReverse /http-bind http://my_bosh_domain:5280/http-bind/

我记录我的请求并收到以下错误:

bosh module not started 

当我http://my_bosh_domain:5280/http-bind/从浏览器中查看时,我可以看到:

ejabberd mod_http_bind

An implementation of XMPP over BOSH (XEP-0206)

This web page is only informative. To use HTTP-Bind you need a Jabber/XMPP client that supports it.

我错过了什么?

更新


我已将代理设置更改为:

   <Proxy *>
      Order deny,allow
      Allow from all
   </Proxy>

现在我得到以下回复:

<body xmlns='http://jabber.org/protocol/httpbind' xmlns:xmpp='urn:xmpp:xbosh'
  xmlns:stream='http://etherx.jabber.org/streams' sid='6093aa55412842f7be3de1b33fd2a307df4ae2fa' wait='60'
  requests='2' inactivity='120' maxpause='120' polling='2' ver='1.8' from='chat.facebook.com' secure='true'
  authid='3105619037' xmpp:version='1.0'>
<stream:features xmlns:stream='http://etherx.jabber.org/streams'>
    <mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
        <mechanism>SCRAM-SHA-1</mechanism>
        <mechanism>DIGEST-MD5</mechanism>
        <mechanism>PLAIN</mechanism>
    </mechanisms>
    <c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.process-one.net/en/ejabberd/'
       ver='TQ2JFyRoSa70h2G1bpgjzuXb2sU='/>
    <register xmlns='http://jabber.org/features/iq-register'/>
</stream:features>

这是错误的,我期望将 X-FACEBOOK-PLATFORM 作为机制之一。任何想法?

4

3 回答 3

0

经过一周多的努力,我让它开始工作,我切换到旁遮普语而不是节点服务器,一切正常。所以基本上结构是:

Strophe.js <-> Apache(代理)<-> 旁遮普语 <-> Facebook XMPP 服务器

于 2012-07-29T07:32:12.610 回答
0

请参阅BOSH 模块未启动:Ejabberd / Strophe 设置问题

您可能没有在 Strophe 页面的用户名字段中使用 name@host。
旁遮普省正在为您添加它,这使它起作用。

于 2013-02-27T09:08:13.647 回答
0

上次我遇到这个问题(我现在又遇到了;-))问题是我需要将我试图访问 BOSH 服务器的 HTTP 主机添加到“主机”配置选项中。

祝你好运!

于 2012-07-25T18:31:45.907 回答