17

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

例如:如果服务器向客户端 A 发出事件,并且服务器向所有客户端Evt1广播。Evt2因此,客户端 AEvt1Evt2按该顺序接收。

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

4

2 回答 2

44

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

将 Socket.io 与 WebSockets 一起使用时,可以保证保持数据包顺序。

这是一篇旧文章,但值得注意的是,基于WebSockets的 Socket.io 实际上确实保证了事件顺序的维护。这是因为 TCP 本身,它是 WebSockets 和 HTTP 的底层技术,可以保证数据包的顺序得到维护。但是 Socket.io 还支持其他几种保证顺序的协议。

关于这个问题已经发布了几个问题,支持这一事实:

于 2017-01-13T18:47:24.100 回答
-2

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

于 2013-03-14T20:33:55.003 回答