麻烦得到conversejs 3.2.1使用在Ubuntu 16.04上运行的node-xmpp

问题描述 投票:0回答:1

我正在尝试配置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连接管理器进行测试时,联系人列表会在控制框中正确显示。)

但是,当SMS发送到登录的帐户时,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,但显然不会被conversejs“消化”和/或显示。

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

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

提前致谢。

node.js ubuntu converse.js node-xmpp
1个回答
0
投票

事实证明,问题在于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

打开端口后,连接设置正确。希望这是有帮助的。

© www.soinside.com 2019 - 2024. All rights reserved.