我正在尝试在Openfire中使用旁遮普连接管理器。我有一个已经在运行的Openfire服务器。我还安装了punjab,并且服务器正常启动,允许我导航到localhost上的端口5280。(尽管http://localhost:5280/http-bind会给出一条“资源未找到”的消息。)我不确定如何从这里开始。我在openfire管理控制台中的连接管理器下启用了一个设置,该设置显示“连接管理器可以连接到此服务器。”
如何配置punjab以连接xmpp服务器?
到目前为止,我使用apache中的xmpp stophe库和代理模块直接建立了到服务器的bosh连接。现在我想使用旁遮普邦。
发布于 2010-11-04 17:58:08
昨天我也遇到了同样的问题,并且已经能够解决了。
这是正确的-您不需要旁遮普的任何配置。默认情况下,punjab将在端口5280上工作。Punjab自动将节定向到所需的服务器。
<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使用到Openfire的普通XMPP连接-就像通常的客户端一样-它在默认端口5222上进行通信。
所以你要做的就是
上url的请求的url
告诉旁遮普要侦听的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文件必须知道这一点。
旁遮普省默认端口5280上url的代理BOSH请求
接下来,您的them服务器必须处理定向到'/bosh‘的请求,并将它们代理到端口5280上的旁遮普。假设您使用Apache,那么在您的虚拟主机配置中,可以执行以下操作:
<IfModule proxy_http_module>
ProxyRequests Off
ProxyPass /bosh http://localhost:5280/bosh
ProxyPassReverse /bosh http://localhost:5280/bosh
</IfModule>发布于 2010-11-06 15:44:45
我做了同样的事情,它也在我这一端起作用。谢谢你的详细解释。
除此之外,在我的例子中造成混乱的主要原因是,我对不同的项目使用不同的虚拟主机,而多个项目使用相同的xmpp服务器。此外,尽管服务器安装在localhost上,但它并没有命名为localhost。因此,如果任何人面临类似的问题,那么您需要向所有请求添加route='xmpp: server :port‘(例如,在我的示例中,route='xmpp:127.0.0.1:5222’),否则旁遮普将无法将节自动定向到服务器
发布于 2010-12-21 23:44:14
@Joe:
我认为您应该编写一个Strophe.js插件,为您的xmpp请求添加正确的路由属性( route ='xmpp:dev.mydomain.com:5222')……当我下班回来的时候,我会试着指导你这样做。
看起来您的应用程序可以与punjab通信,但是punjab不知道将您的xmpp请求路由到哪里。
要理解应用程序在连接时挂起的原因,一个好方法是阅读以下内容:http://xmpp.org/extensions/xep-0124.html搜索有关路由的信息:)
https://stackoverflow.com/questions/4013588
复制相似问题