从服务器触发多个发射时,我收到了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
那样工作?