2012-06-07 56 views
4

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

但是,WebSockets是这种情况吗?在我的网页上,我现在经常发送很多像素数据,所以客户不会经历太多的颠簸。但是,如果我更少发送更新,会更好吗?

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

感谢您的阅读。

编辑:帮助计算机

回答

3

我想提出的主要观点是,健谈VS矮胖的接口不局限于技术栈(的WebSockets,HTTP,UDP,其他网络相关的协议)。它们都拥有相同的属性,许多请求和较大请求的影响必须以类似(如果不相同)的方式加权。 Here is a great article欲了解更多关于这个主题的阅读。

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

EDIT

下面是有关的WebSocket性能类似的问题:HTTP vs Websockets with respect to overhead

+0

谢谢你是一个很好的阅读我想我会用一个粗糙的界面去。 –

2

发送的WebSocket(客户端到服务器)消息大小的< = 125个八比特组的有效载荷的开销是6个八位字节。高达64k的有效载荷将是8个八位字节,并且高于14个八位字节。由于WebSocket是一个基于TCP的协议,由于流/动态窗口大小的调整,快速发送很多小消息将会批量化为大尺寸的TCP分段和无论如何发送的IP分组。在线上,它将更类似于发送较大的WS消息。

当然,这只适用于发送异步完成时,即在发送另一条消息之前不等待已发送消息的响应。