WebSockets:在私有通道中触发的多个事件可以在客户端中无序到达

时间:2016-07-27 05:25:21

标签: javascript networking websocket socket.io websocket-rails

我已经阅读了Websockets上的多篇帖子,其中突出显示WebsocketsTCP Connection上排在最前面且订单有保证的事实。因为,我是`Websockets'的新手,我有一个小查询。

我有一个简单的应用程序,我试图通过websocket连接发送一个大文件(1GB)。我在服务器端使用rails gem名为websocket-rails,在前端使用java script客户端。

我创建了一个私有频道,通过该频道触发事件并一个接一个地传输日期。我将500 lines' at a time from服务器转移到客户端'在相同的通道上作为同一websocket连接的一部分。数据包是否有可能以不同的顺序到达不同的顺序?我是否需要在客户端re-order实现整个文件的任何机制?

1 个答案:

答案 0 :(得分:1)

Websockets没有“事件”或“频道”。它们只有作为一个或多个帧传输的消息。消息的顺序和消息内的帧保持不变,即不进行重新排序,也不与其他消息交织(控制帧可能交错)。

这如何转换为您的“私人频道”和“事件”是未知的,因为这可能是您在Websockets上使用的特定库的功能。