xmpp - 配置旁遮普向 Openfire 发送 xmpp 请求

标签 xmpp openfire

我正在尝试将旁遮普连接管理器与 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/

相关文章:

android - 如何使用 Smack 删除 XMPPClient 的数据包监听器

android - 登录异常 SASL 身份验证在 android 中使用机制 DIGEST-MD5 asmack 失败

ios - 找不到包含 <angled> 的“libxml/xmlversion.h”文件;使用 "quotes"代替

java - 从 android 在 openfire 服务器中创建新用户

android - 如何使用 Smack 了解 XMPP openfire 中的键入状态

ios - XMPPFramework - 删除注册用户帐户时出现 "not-authorized"错误

xmpp - 从 xmpp 服务器或客户端获取 IQ 请求的完整 JID

ios - XMPPFramework- 文件传输中的错误 "405"<not-allowed>

php - PHP 中的 OpenFire 在线/离线用户

xmpp - 检索存档消息时未实现的功能