如果我们彼此在同一HTML5的WebSocket分裂毫秒发送两条消息分开,
它是理论上可能的消息以不同的顺序比他们被送往到达?
如果我们彼此在同一HTML5的WebSocket分裂毫秒发送两条消息分开,
它是理论上可能的消息以不同的顺序比他们被送往到达?
简短的回答:没有。
长一点的回答:
WebSocket的运行于TCP,因此该级别@EJP的回答适用。 通过中介(例如WS代理)的WebSocket可以被“截获”:那些被允许重新排序的WebSocket控制帧(即WS坪/ pongs),而不是消息帧时,没有的WebSocket扩展到位。 如果在地方neogiated扩展,原则上允许重新排序,然后是媒介只能这样做,如果对扩展理解和适用的重新排序规则。
这是不可能让他们在你的应用程序不按顺序到达。 任何事情都有可能发生在网络上,但TCP只会目前您在它们发送的顺序字节。
在网络层TCP是假设,以保证消息按顺序到达。 在应用层,可以发生在代码错误和导致您的邮件是不按顺序在代码的逻辑。 这可能是你的应用程序正在使用的网络协议栈或应用程序代码本身。
如果你问我,我可以申请的Node.js保证发送和接受订货的邮件吗? 我不得不说没有。 我已经运行在高延迟和低信号连接到无线网络的WebSocket应用。 它会导致非常奇怪的行为,如果数据包被丢弃和消息失序的。
这篇文章是一个很好看的https://samsaffron.com/archive/2015/12/29/websockets-caution-required