为啥要使用 websocket,使用它有啥好处? [关闭]

Posted

技术标签:

【中文标题】为啥要使用 websocket,使用它有啥好处? [关闭]【英文标题】:Why to use websocket and what is the advantage of using it? [closed]为什么要使用 websocket,使用它有什么好处? [关闭] 【发布时间】:2017-12-07 12:11:46 【问题描述】:

我尝试阅读一些文章,但对这个主题不太清楚。

有人想解释一下以下几点:

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

【问题讨论】:

K.O.标准是使用套接字的客户端不需要向服务器请求任何东西来获取信息..... 是的,知道了。谢谢! 我不明白为什么人们投票决定关闭它,因为它“太宽泛了”。什么是 webSocket 连接的好处是一个非常明确的问题,无需非常广泛的解释即可轻松回答。我已投票决定重新开放。 这应该重新打开。 OP 在他们的问题中表达了三个要点,所有这些都可以很容易地回答(见下面的答案)。 【参考方案1】:

为什么在 http 上使用 websocket?

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

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

    数据可以非常有效地以任何一种方式发送。因为已经建立了连接,并且 webSocket 数据帧被非常有效地组织(主要是 6 个额外字节,2 个字节用于标头,4 个字节用于掩码),与通过必然包含标头的 HTTP 请求相比,发送数据的效率要高得多,饼干等...

什么是全双工通信?

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

低延迟交互是什么意思

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

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

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

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

For a push notification, is a websocket mandatory?

html5 WebSocket: A Quantum Leap in Scalability for the Web

【讨论】:

谢谢!!这真的很有帮助。提供的信息非常有用。

以上是关于为啥要使用 websocket,使用它有啥好处? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

泛型有啥好处,为啥要使用它们?

spring jdbctemplate和java web中jdbc的区别,它有啥好处

请问为啥AJAX在传输数据的时候要使用JSON格式?有啥好处吗?别说规定啊 我想知道原理。

在 LAN 中使用 Websockets 代替原始 TCP 套接字有啥好处吗?

如何在 cpp 的线程中使用 = 运算符,它有啥好处? [复制]

如果不需要回退,使用 WebSocket API 代替 Socket.io 有啥好处吗