发送大量消息与使用WebSockets的大消息有多大的开销?

时间:2012-06-07 00:24:54

标签: javascript html websocket

我知道使用HTML并发送数据时,由于与标题,内容,标签,到期日期,Cookie等相关的开销,我们鼓励不经常发送大量数据。为了获得更好的用户体验和更少的延迟,最好是经常发送大型消息而不是经常发生小型更新。

然而,这是WebSockets的情况吗?在我的网页上,我经常发送大量像素数据非常,因此客户端不会遇到太多的不稳定因素。但是,如果我不经常发送更新会更好吗?

我想我的问题归结为:“使用WebSockets,与频繁的小消息相比,发送大型消息的效率是否更高?”我想我听说这项技术摆脱了与发送和接收消息相关的大部分开销,因为它保持连接不变并且是全双工等。

感谢阅读。

编辑:帮助计算机

2 个答案:

答案 0 :(得分:3)

我想说的是,chatty vs chunky接口不仅限于技术堆栈(WebSockets,HTTP,UDP,其他网络相关协议)。它们都共享相同的属性,许多请求与较大请求的效果必须以类似(如果不相同)的方式进行权衡。 Here is a great article有关该主题的更多阅读。

最后要注意的是,您的应用程序的性质也会最大程度地影响您的决策。实时股票交易系统将比简单的用户输入形式更加健谈。

修改

以下是与WebSocket性能相关的类似问题:HTTP vs Websockets with respect to overhead

答案 1 :(得分:2)

发送大小<= 125个八位字节有效负载的WebSocket(客户端到服务器)消息的开销是6个八位字节。有效载荷高达64k,它将是8个八位字节,高于14个八位字节。

由于WebSocket是基于TCP的协议,由于流媒体/动态窗口大小调整,快速发送许多小消息将批量处理为大型TCP段和无论如何发送的IP数据包。在线上,它类似于更慢地发送大型WS消息。

当然,这仅适用于异步发送,即在发送另一条消息之前无需等待已发送消息的响应。