【发布时间】:2011-09-29 21:59:53
【问题描述】:
我想知道是否必须实现 XMPP 客户端,哪种连接是最好的方式,使用套接字还是 BOSH?优缺点都有什么?我假设两者都可以支持客户端与服务器位于不同的网络上?
【问题讨论】:
标签: xmpp
我想知道是否必须实现 XMPP 客户端,哪种连接是最好的方式,使用套接字还是 BOSH?优缺点都有什么?我假设两者都可以支持客户端与服务器位于不同的网络上?
【问题讨论】:
标签: xmpp
我认为 socket 和 bosh 之间最大的区别是 bosh 使用的是stateless(connectection closed) 与 socket 的 HTTP。这意味着您可以在使用 BOSH 时从浏览器中连接到 XMPP。我不明白你为什么要创建一个 BOSH 客户端,因为strophe.js 是一个非常好的 bosh 客户端。此外,几乎所有可用语言都有一个套接字实现。如果你问我,这就是关于 XMPP 的好想法。
【讨论】:
这当然不是所有优缺点的最终列表,而是我在尝试实现跨网络加密 Openfire 连接时遇到的那些。
套接字 One Pro of Socket Connection:支持自动 TLS 加密。
套接字连接的一个可能缺点:我最近了解到,如果 Openfire 服务器与连接到该服务器的客户端位于不同的网络上,那么使用套接字连接可能会成为问题,在这种情况下,连接到服务器的能力可以受连接网络防火墙和通过标准 5222 Socket 端口连接的能力的支配。
HTTP 绑定
Http-Bind的优点:可以通过使用标准的Http端口来缓解上述网络间连接的问题。
Http-Bind 的一个缺点:似乎不支持自动 TLS 加密,而是依赖“旧 SSL”标准进行加密通信,许多 XMPP 库似乎不支持。
【讨论】: