Node.js Socket.io是否保证按顺序接收客户端广播的事件?
Socket.IO中是否有某种排序机制可以保证客户端按顺序接收事件 例如:如果服务器向客户端a发出eventNode.js Socket.io是否保证按顺序接收客户端广播的事件?,node.js,socket.io,server-push,Node.js,Socket.io,Server Push,Socket.IO中是否有某种排序机制可以保证客户端按顺序接收事件 例如:如果服务器向客户端a发出eventEvt1,并且服务器向所有客户端广播Evt2。 因此,客户机A接收Evt1,然后Evt2,并且仅按该顺序接收 我的猜测是否定的,如果是这样,您将如何实现它,或者是否存在现有的解决方案?不,如果需要,您必须在应用程序级别这样做。互联网不能保证两个不同的数据包将采用相同的路由,因此时间可能会有所不同。可能会在每条消息中添加一个时间戳,以便您可以按该时间戳排序以保持事情的有序性。由于前面的答案可
Evt1
,并且服务器向所有客户端广播Evt2
。
因此,客户机A接收Evt1
,然后Evt2
,并且仅按该顺序接收
我的猜测是否定的,如果是这样,您将如何实现它,或者是否存在现有的解决方案?不,如果需要,您必须在应用程序级别这样做。互联网不能保证两个不同的数据包将采用相同的路由,因此时间可能会有所不同。可能会在每条消息中添加一个时间戳,以便您可以按该时间戳排序以保持事情的有序性。由于前面的答案可能会误导,我认为澄清一件事很重要: 将Socket.io与WebSocket一起使用时,包顺序将得到保证。 这是一篇老文章,但值得注意的是WebSockets上的Socket.io实际上保证了事件顺序的维护。这是因为作为WebSockets&HTTP底层技术的TCP本身保证了数据包顺序的维护。但是,Socket.io还支持其他几种协议,这些协议不能保证顺序 有几个关于这个问题的问题,支持这一事实: