我想知道如果我需要实现一个XMPP客户端,使用socket或BOSH哪种连接方式更好?它们各有什么优缺点?我假设两者都可以支持客户端和服务器在不同的网络上?
我想知道如果我需要实现一个XMPP客户端,使用socket或BOSH哪种连接方式更好?它们各有什么优缺点?我假设两者都可以支持客户端和服务器在不同的网络上?
这当然不是所有优缺点的决定性列表,而是我在尝试实现跨网络加密Openfire连接时遇到的一些问题。
Socket
Socket连接的一个优点:支持自动TLS加密。
Socket连接的一个可能的缺点:最近我了解到,如果Openfire服务器与连接到该服务器的客户端位于不同的网络上,则使用套接字连接可能会出现问题,在这种情况下,连接到服务器的能力可能取决于连接网络的防火墙和通过标准5222套接字端口连接的能力。
HTTP-Bind
Http-Bind的一个优点:可以通过使用标准Http端口来缓解前面提到的跨网络连接问题。
Http-Bind的一个缺点:似乎不支持自动TLS加密,而是依赖于“旧SSL”标准进行加密通信,许多XMPP库似乎不支持。