麻烦让 conversejs 3.2.1 在 Ubuntu 16.04 上与 node-xmpp 运行 一起工作

troubling getting conversejs 3.2.1 working with node-xmpp running on Ubuntu 16.04

我正在尝试配置 conversejs 3.2.1 以在 Ubuntu 16.04 上与 node-xmpp-bosh 运行 一起使用。节点版本是 4.2.6.

使用 "bosh.conf.example.js" 中的默认配置,node-xmpp-bosh 正确启动并侦听端口 5280。通过访问 http://my-bosh-cm-IP:5280/http-bind 确认并显示以下网页:

node-xmpp-bosh on ip-172-31-15-30
Bidirectional-streams Over Synchronous HTTP

Uptime: 00:35:15
1/1 active sessions
1/1 active streams

Conversejs 似乎以某种方式连接到 node-xmpp(即 1/1),并通过它连接到目标 XMPP 服务器,尽管用于登录的帐户的联系人列表未显示在控制箱中(作为旁注,当我使用 conversejs.org BOSH 连接管理器进行测试时,联系人列表正确显示在控制箱中。)

但是,当向登录的帐户发送短信时,conversejs 不会显示带有短信的聊天框,控制台中会立即出现以下错误:

sounds/msg_received.ogg:1 GET http://dev.myserver.com/sounds/msg_received.ogg net::ERR_ABORTED
sounds/msg_received.mp3:1 GET http://dev.myserver.com/sounds/msg_received.mp3 net::ERR_ABORTED
status.php:1 Uncaught (in promise) DOMException: Failed to load because no supported source was found.

这似乎暗示消息已收到,但由于某些未公开的原因,conversejs 无法在聊天框中显示它。重复发送的消息会导致相同的错误语句,因此很明显消息的某些部分正在传递给 conversejs,但显然 "digestible" and/or 无法由 conversejs 显示。

我意识到 node-xmpp 是一个有点过时的项目,但希望它仍然可以提供所需的 BOSH 连接管理服务。

我意识到这个问题可能缺乏足够的细节来提供问题的直接答案(很乐意提供更多),但是任何关于在哪里看的见解或指示,或者我忽略的东西都会很多赞赏。如果有人使用不同的 BOSH 连接管理器并且可以正常工作,如果您可以分享那是什么,我很想知道。

提前致谢。

原来问题是 XMPP 端口没有被添加到防火墙。为了让 BOSH 连接管理器与 XMPP 服务器一起运行,保护 BOSH CM 机器的防火墙需要允许以下一个或多个入站 TCP 端口:

5222 XMPP client connection
5223 XMPP client connection over SSL
5269 XMPP server connection

5298 XMPP (TCP / UDP) Link-local messaging. Serverless Messaging 
8010 XMPP File Transfers

端口打开后,连接就建立起来了。 希望这对您有所帮助。