为什么要使用websocket,使用它有什么好处?

时间:2017-07-04 06:54:10

标签: java http websocket low-latency

我试过阅读一些文章,但在这个主题上并不那么清楚。

有人愿意在下面解释我的观点:

  • 为什么要使用websocket over http
  • 什么是全双工通信
  • 低延迟交互是什么意思

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:29)

  

为什么要使用websocket而不是http?

webSocket是客户端和服务器之间的连续连接。这种连续的连接允许以下内容:

  1. 数据可以随时从服务器发送到客户端,客户端甚至无需请求。这通常被称为服务器推送,对于客户端需要在服务器上发生某些事情时需要非常快速地知道的应用程序非常有价值(例如已收到新的聊天消息或已经使用新的价格)。客户端无法通过http推送数据。客户端必须通过每隔几秒发出一次http请求来定期轮询,以便及时获得新数据。客户端轮询效率不高。

  2. 可以非常有效地以任何方式发送数据。因为连接已经建立并且webSocket数据帧的组织非常有效,所以可以通过必须包含标题,cookie等的HTTP请求更有效地发送数据......

  3.   

    什么是全双工通信?

    全双工意味着可以随时在连接上以任何方式发送数据。

      

    低延迟交互是什么意思

    低延迟意味着您在请求内容的时间与获得响应的时间之间几乎没有延迟。因为它适用于webSockets,它只是意味着可以更快地发送数据(特别是在慢速链接上),因为连接已经建立,因此不需要额外的数据包往返来建立TCP连接。

    要比较通过http请求发送某些数据与已建立的webSocket连接所涉及的内容,请参阅此答案中列出的步骤:websocket vs rest API for real time data?

    这些其他参考资料也可能有用:

    Server-push whenever a function is called: Ajax or WebSockets

    Push notification | is websocket mandatory?

    HTML5 WebSocket: A Quantum Leap in Scalability for the Web