在浏览器之外使用Websockets有什么好的理由吗?

Websockets被devise用于浏览器中的快速双向通信。 假设你可以控制服务器和本机客户端(比如iOS或Mac应用程序),是否有任何好的理由或情况通过websocket进行通信而不是使用HTTP库?

我要回答几个不同的问题,希望最终回答你的问题:

  • 有没有理由从客户端而不是HTTP使用WebSockets? 是的

    • 与HTTP相比,WebSockets是双向的,全双工的,低延迟和低开销的。

    • 与HTTP / AJAX / COMET相比,部分较低的延迟和开销是您不必为每个请求重新build立连接。

  • 有没有理由从客户端而不是原始套接字使用WebSockets? 是的

    • 最初的WebSockets握手是HTTP服务器友好(并且有一些起源和散列交换安全机制)。 它允许Web服务器轻松地更新,以支持redirect或代理WebSockets连接到真正的WebSockets服务器应用程序。

    • WebSockets的另一个好处是它是一个框架协议,允许应用程序专注于有用的function,而不必处理自己的帧和缓冲。

    • 通过类似wsproxy的方式将WebSockets支持添加到现有的TCP套接字服务器或代理上是相当容易的。 免责声明:我做了wsproxy。

    • 从服务器的angular度来看WebSockets是一个胜利,因为他们可以通过独立的客户端或浏览器访问。 这意味着将有越来越多的服务,目前基于TCP套接字,将通过WebSockets暴露。 因此,现在向客户端添加WebSockets支持将在未来得到回报。