我的应用程序的客户端部分需要严格按顺序处理 WebSocket 消息。不幸的是,每条消息的处理时间都相当长(大约 3 秒),因此在第一条消息结束之前会出现另一条消息。几条消息之后,顺序就完全不同了。如何在 JavaScript 中解决这个问题。
我考虑过一个任务队列,但我不知道如何实现它以不阻止我的网络应用程序的 GUI。
我认为另一个答案是错误的。 WebSocket 是 TCP,这意味着交货顺序有保证。正如@Maël Nison 引用的那样,请参阅RFC6455 https://www.rfc-editor.org/rfc/rfc6455:
消息片段必须按照发送者发送的顺序传递给接收者
所以你可以理所当然地认为你的处理会start为了。但是,如果您有很多异步回调,那么稍后的处理可能会finish之前的早些时候还在继续。但这只是错误的实现(以及一些回调地狱)。
类似的帖子:
- Websocket 消息是否会无序到达? https://stackoverflow.com/questions/11804721/can-websocket-messages-arrive-out-of-order
- Websocket:服务器数据是否同步发送? https://stackoverflow.com/questions/9282892/websocket-are-server-data-sent-synchronously
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)