我正在尝试将旁遮普连接管理器与 Openfire 一起使用。我已经有一个正在运行的 Openfire 服务器。我还安装了 punjab 并且服务器正常启动,允许我导航到本地主机上的端口 5280。 (尽管http://localhost:5280/http-bind给出了“资源未找到消息”。) 我不知道如何从这里继续。我在 openfire 管理控制台的连接管理器下启用了一个设置,显示“连接管理器可以连接到此服务器。”。
如何配置punjab与xmpp服务器连接?
到目前为止,我正在使用 apache 中的 xmpp stophe lib 和代理模块直接建立到服务器的 bosh 连接。现在我想使用旁遮普语。
最佳答案
我昨天也有同样的问题,后来解决了。
是的 - 您不需要任何旁遮普配置。默认情况下,旁遮普将在端口 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”属性。 Punjab 可以从中判断要与哪个 XMPP 服务器通信。
忘记 Openfire 中的连接管理器设置。您可以完全禁用此功能。这是因为 punjab 使用普通的 XMPP 连接到 Openfire - 就像普通客户端一样 - 它在默认端口 5222 上进行通信。
所以你所要做的就是
- 告诉旁遮普人要听什么网址
- 代理 BOSH 在旁遮普默认端口 5280 上向该网址发出请求
告诉旁遮普要听什么网址
在 punjab.tac 文件中,有一行内容为
root.putChild('bosh', b) # url for BOSH
因此“bosh”将成为 strope 必须将其节发送到的 URL 的一部分,该 URL 将是 http://www.yourdomain.tld/bosh 。 “/bosh”也可以是“/http-bind”或“/xmpp-httpbind”,但您的 punjab.tac 文件必须知道这一点。
在旁遮普默认端口 5280 上代理 BOSH 对该 URL 的请求
接下来,您的网络服务器必须处理定向到“/bosh”的请求,并将它们代理到端口 5280 上的旁遮普语。假设您使用 Apache,那么在您的虚拟主机配置中,类似这样的内容就可以完成这项工作:
<IfModule proxy_http_module>
ProxyRequests Off
ProxyPass /bosh http://localhost:5280/bosh
ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>
关于xmpp - 配置旁遮普向 Openfire 发送 xmpp 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013588/