Node.js Socket.io是否保证按顺序接收客户端广播的事件?

Node.js Socket.io是否保证按顺序接收客户端广播的事件?,node.js,socket.io,server-push,Node.js,Socket.io,Server Push,Socket.IO中是否有某种排序机制可以保证客户端按顺序接收事件 例如:如果服务器向客户端a发出eventEvt1,并且服务器向所有客户端广播Evt2。 因此,客户机A接收Evt1,然后Evt2,并且仅按该顺序接收 我的猜测是否定的,如果是这样,您将如何实现它,或者是否存在现有的解决方案?不,如果需要,您必须在应用程序级别这样做。互联网不能保证两个不同的数据包将采用相同的路由,因此时间可能会有所不同。可能会在每条消息中添加一个时间戳,以便您可以按该时间戳排序以保持事情的有序性。由于前面的答案可

Socket.IO中是否有某种排序机制可以保证客户端按顺序接收事件

例如:如果服务器向客户端a发出event
Evt1
,并且服务器向所有客户端广播
Evt2
。 因此,客户机A接收
Evt1
,然后
Evt2
,并且仅按该顺序接收


我的猜测是否定的,如果是这样,您将如何实现它,或者是否存在现有的解决方案?

不,如果需要,您必须在应用程序级别这样做。互联网不能保证两个不同的数据包将采用相同的路由,因此时间可能会有所不同。可能会在每条消息中添加一个时间戳,以便您可以按该时间戳排序以保持事情的有序性。

由于前面的答案可能会误导,我认为澄清一件事很重要:

将Socket.io与WebSocket一起使用时,包顺序将得到保证。 这是一篇老文章,但值得注意的是WebSockets上的Socket.io实际上保证了事件顺序的维护。这是因为作为WebSockets&HTTP底层技术的TCP本身保证了数据包顺序的维护。但是,Socket.io还支持其他几种协议,这些协议不能保证顺序

有几个关于这个问题的问题,支持这一事实:


谢谢!您知道是否有某种npm模块使用socket.io来同步发出和发送的消息吗?因为这似乎是一个多余的问题,例如一个聊天应用程序,以确保你收到所有的消息,并在正确的顺序从不同的人…只需添加一个日期字段。我不知道有任何库,我也不认为有一个库是必要的。hi@Max,这是必要的,因为您可能会通过时间戳比较两条消息A