Socket.io-为什么客户端无法接收到服务器快速发送的易失性消息

时间:2018-10-08 15:28:26

标签: javascript socket.io

从服务器触发多个发射时,我收到了volatile消息所不希望的行为。

当我通过循环快速连续执行常规emit时,客户端会收到所有消息,并且可以通过chrome网络检查器对其进行检查。当我更改为执行volatile.emit时,只收到第一条消息(共100条)。

问题是,为什么会这样?

据我了解: https://socket.io/docs/#Sending-volatile-messages,我希望所有消息都将被发送,即使客户端未收到它们也是如此。如果确实已发送它们,那么为什么emit可以被所有消息接收,而volatile.emit却不能被接收?

下面是一个到仓库的链接,仓库是我在易失性和非易失性消息之间进行测试的设置。 https://github.com/GStipick/socketioVolatileTest

此外,我注意到如果通过volatile.emit发送每条setTimeout()消息有50毫秒的延迟,则所有消息都将正确发送(但当然会有延迟)。哪些因素会影响此方法按预期工作,但不是立即volatile.emit像常规emit那样工作?

0 个答案:

没有答案