我昨天有同样的问题,并且能够解决。
没错-您不需要任何旁遮普语配置。默认情况下,旁遮普将在端口 5280 上工作。旁遮普自动将节定向到所需的服务器。
<body rid='123' xmlns='http://jabber.org/protocol/httpbind' to='yourdomain.tld' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>
这是用于通过 BOSH 建立连接的节。您可以看到“to”属性。旁遮普邦可以从中看出要与哪个 XMPP 服务器对话。
忘记 Openfire 中的连接管理器设置。您可以完全禁用此功能。这是因为 punjab 使用普通的 XMPP 连接到 Openfire - 就像通常的客户端一样 - 它在默认端口 5222 上进行通信。
所以你所要做的就是
- 告诉旁遮普听什么网址
- 代理 BOSH 请求到旁遮普默认端口 5280 上的该 url
告诉旁遮普听什么网址
在 punjab.tac 文件中有一行说
root.putChild('bosh', b) # url for BOSH
因此,“bosh”将成为 strophe 必须将其节发送到的 URL 的一部分,即http://www.yourdomain.tld/bosh。“/bosh”也可以是“/http-bind”或“/xmpp-httpbind”,但您的 punjab.tac 文件必须知道这一点。
代理 BOSH 请求到旁遮普默认端口 5280 上的该 url
接下来,您的网络服务器必须处理定向到“/bosh”的请求,并将它们代理到端口 5280 上的旁遮普语。假设您使用 Apache,那么在您的虚拟主机配置中,类似这样的东西就可以完成这项工作:
<IfModule proxy_http_module>
ProxyRequests Off
ProxyPass /bosh http://localhost:5280/bosh
ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>