Socket.IO 中是否有某种排序机制可以保证客户端按顺序接收事件?
例如:如果服务器向客户端 A 发出事件,并且服务器向所有客户端Evt1
广播。Evt2
因此,客户端 AEvt1
仅Evt2
按该顺序接收。
我的猜测是否定的,如果是这样,您将如何实施它,或者是否有现有的解决方案?
Socket.IO 中是否有某种排序机制可以保证客户端按顺序接收事件?
例如:如果服务器向客户端 A 发出事件,并且服务器向所有客户端Evt1
广播。Evt2
因此,客户端 AEvt1
仅Evt2
按该顺序接收。
我的猜测是否定的,如果是这样,您将如何实施它,或者是否有现有的解决方案?
由于以前的答案可能会产生误导,我认为澄清一件事很重要:
这是一篇旧文章,但值得注意的是,基于WebSockets的 Socket.io 实际上确实保证了事件顺序的维护。这是因为 TCP 本身,它是 WebSockets 和 HTTP 的底层技术,可以保证数据包的顺序得到维护。但是 Socket.io 还支持其他几种不保证顺序的协议。
关于这个问题已经发布了几个问题,支持这一事实:
不,如果需要,您必须在应用程序级别执行此操作。互联网不保证两个不同的数据包将采用相同的路由,因此时间可能会有所不同。也许为每条消息添加一个时间戳,以便您可以按该时间戳排序以保持事情井井有条。