【问题标题】:Does XMPP server MongooseIM work with BOSH or WebSocket?XMPP 服务器 MongooseIM 是否可以与 BOSH 或 WebSocket 一起使用?
【发布时间】:2015-02-11 19:26:03
【问题描述】:

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

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

而且,使用 TCP 作为我的传输,连接 url 是“example.org”,为什么它会是 'example.org/http-bind' 与 BOSH?为什么2种运输有区别?

【问题讨论】:

    标签: javascript websocket xmpp mongoose-im


    【解决方案1】:

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

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

    你尝试过哪些 JS 客户端?

    【讨论】:

    • 我使用 Strophe.js 和 MongooseIM。我知道还有一些其他服务器支持 BOSH 和 WebSocket,但我想知道 MongooseIM 是否支持它们。因为我不想修改我的后端架构。
    • 是的,MongooseIM 确实支持 WebSockets 和 BOSH。我们(免责声明:我在 MongooseIM 上工作)有使用 Strophe.js 和 BOSH 的经验,所以这绝对是可能的,并且不需要对客户端库或服务器进行任何更改。我不知道 WebSocket 传输是否相同,但我没有理由假设它不起作用。
    • 我们需要更多信息 Phineas。第一个是您为这些连接使用的 URL。如果您可以分享您的 Strophe.js 配置,那就更好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2011-11-11
    相关资源
    最近更新 更多