javascript - XMPP 服务器 MongooseIM 是否可以与 BOSH 或 WebSocket 配合使用?

标签 javascript websocket xmpp mongoose-im

我使用 MongooseIM 作为我的 XMPP 服务器,该服务器通常使用 TCP 作为传输。该服务器与我的 iOS 客户端配合良好。但是当我想在 Web 应用程序中创建相同的服务时,我发现它不适用于任何类型的 javascript XMPP 框架。

因为对于浏览器,我们不能使用 TCP 作为传输。相反,替代方案是 WebSocket 和 BOSH。当我将 WebSocket 与 MongooseIM 结合使用时,它显示 hand shake failed 。使用 BOSH 时,它显示 403 错误。那么 MongooseIM 真的可以与 WebSocket 或 BOSH 配合使用吗?

而且,使用 TCP 作为传输方式时,连接 URL 是“example.org”,为什么 BOSH 的连接 URL 是“example.org/http-bind”?为什么两种运输之间存在差异?

最佳答案

纯XMPP TCP连接,BOSH和Websockets是完全不同的协议(protocol)。 BOSH 和 Websockets 都使用单独的后缀(http-bindws-xmpp)来区分端点(如果它们在同一端口上运行)。它使服务器无需猜测客户端实际上将使用什么协议(protocol),并提供了很好的分离。

您到底使用什么 URL 来连接 BOSH 和 Websockets?在前一种情况下,它应该类似于 http://localhost:5280/http-bind ,而在后一种情况下,它应该类似于 ws://localhost:5280/ws-xmpp

您尝试过哪些 JS 客户端?

关于javascript - XMPP 服务器 MongooseIM 是否可以与 BOSH 或 WebSocket 配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462816/

相关文章:

c++ - QT中两个窗口共享websocket连接

c# - Blazor 服务器 WebSocket 连接失败 : There was an error with the transport

websocket - Jetty - 独立的 WebSocket 服务器

java - 来自 Camel XMPP 的消息未通过 Openfire 到达 Pidgin

java - 推荐java中的非GPL XMPP服务器

android - Smack XMPP 连接状态,数据不正确

javascript - 在使用 ajax 通过 html 表单发送之前验证电子邮件地址

javascript - 控制浏览器缓存生成的 JavaScript

javascript - 使用 document.getElementById 引用多个(不同的)Div Id

javascript - 提交前检查日期间隔