Websockets专为在浏览器中进行快速双向通信而设计。假设您可以控制服务器和本机客户端(比如iOS或Mac应用程序),是否有任何理由或情况可以通过websocket而不是使用HTTP库进行通信?
答案 0 :(得分:19)
我将回答几个不同的问题,希望最终回答你的问题:
是否有理由从客户端而不是HTTP使用WebSockets?的是
与HTTP相比,WebSockets具有双向,全双工,低延迟和低开销。
与HTTP / AJAX / COMET相比,部分较低的延迟和开销是您不必为每个请求重新建立连接。
是否有理由从客户端而不是原始套接字使用WebSockets?的是
初始WebSockets握手是HTTP服务器友好的(并且具有一些原始和散列交换安全机制)。它允许轻松更新Web服务器,以支持WebSockets与真实WebSockets服务器应用程序连接的重定向或代理。
WebSockets的另一个好处是它是一个框架协议,它允许应用程序专注于有用的功能,而无需处理自己的框架和缓冲。
通过像websockify之类的东西,可以很容易地向现有的TCP套接字服务器或代理添加WebSockets支持。免责声明:我制作了websockify。
从服务器的角度来看,WebSockets是一个胜利,因为它们可以通过独立客户端或浏览器访问。这意味着将会有越来越多的服务,这些服务目前基于TCP套接字,将通过WebSockets公开。因此,现在向客户端添加WebSockets支持将在未来获得回报。