令人不安的是,让ConverseJs 3.2.1使用在Ubuntu上运行的Node-XMPP 16.04



我正在尝试配置conversejs 3.2.1与ubuntu上运行的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不会显示带有短信的Chatbox,并且立即在控制台中出现以下错误:

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连接经理并有工作,如果您可以分享那是什么,我很想知道。

预先感谢。

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

打开端口后,就直接设置了连接。希望这很有帮助。

最新更新