我正在尝试配置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 streamsConversejs似乎以某种方式连接到node-xmpp (即1/1),并通过它连接到目标XMPP服务器,尽管用于登录的帐户的联系人列表没有显示在控制框中(作为附注,当我使用conversejs.org BOSH连接管理器进行测试时,联系人列表正确地显示在控制框中)。
但是,当向登录的账号发送短信时,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无法在chatbox中显示它。重复发送的消息会导致相同的错误语句,所以很明显,消息的某一部分将被conversejs使用,但显然不能被conversejs“消化”和/或显示。
我意识到node-xmpp是一个有点过时的项目,但希望它仍然可以提供所需的BOSH连接管理服务。
我意识到这个问题可能缺乏足够的细节来提供问题的直接答案(很乐意提供更多),但任何关于在哪里寻找的见解或建议,或者我忽略的东西,都将非常感谢。如果有人使用不同的BOSH连接管理器,并使其工作,如果您可以分享这是什么,我很想知道。
提前谢谢。
发布于 2017-12-24 02:39:35
原来这个问题是关于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一旦端口打开,连接就设置好了。希望这能对你有所帮助。
https://stackoverflow.com/questions/47806720
复制相似问题