Websocket 通信延迟问题
Websocket Communication Latency Questions
3 个关于 websocket 连接的小问题
客户端向服务器发送数据时存在延迟。服务器向客户端发送数据时是有延迟还是即时?
如果客户端在特定行中非常快速地向服务器发送数据 - 比如说 [1, 2, 3],是否有可能由于延迟或其他原因,数据由不同行的服务器接收? (比如 [2, 1, 3] )
(与问题#2相同,但服务器发送数据时)
是的,有延迟。它仍然是一个连接,仍然有一个链条可以导航。延迟仅在事情发生变化时才重要,并且考虑到消息到达客户端需要 X 时间,而客户端需要 X 毫秒才能对其执行任何操作,因此很可能在这些毫秒期间状态会发生变化。就像 HTTP 请求(WebSockets 几乎是同一件事)变成 'hot' 一样,我相信延迟会减少(所有其他条件相同)但它仍然存在。
不,WebSockets 是通过 TCP 传输的,所以它们是有序的。 UDP 传输是即发即弃的,它不发送任何接收通知,也不使用计时信息重新生成数据包,因此您可以更快地发送消息,但不能对接收、顺序或事件做出任何假设。页面印象是一个很好的例子,说明您实际上并不关心顺序是什么,并且您可能不太关心服务器何时收到此类消息,WebRTC 可能会在 JS 和服务器之间建立 UDP 连接,但该标准仍在不断涌现。目前,WebSockets 通过 HTTP 升级连接,这意味着它们是 TCP,其中订单信息和收据确认是一回事(来回发送的消息更多)。
同样的答案!这一切都发生在 TCP 上,因此整个行程是往返的,但顺序是有保证的。
3 个关于 websocket 连接的小问题
客户端向服务器发送数据时存在延迟。服务器向客户端发送数据时是有延迟还是即时?
如果客户端在特定行中非常快速地向服务器发送数据 - 比如说 [1, 2, 3],是否有可能由于延迟或其他原因,数据由不同行的服务器接收? (比如 [2, 1, 3] )
(与问题#2相同,但服务器发送数据时)
是的,有延迟。它仍然是一个连接,仍然有一个链条可以导航。延迟仅在事情发生变化时才重要,并且考虑到消息到达客户端需要 X 时间,而客户端需要 X 毫秒才能对其执行任何操作,因此很可能在这些毫秒期间状态会发生变化。就像 HTTP 请求(WebSockets 几乎是同一件事)变成 'hot' 一样,我相信延迟会减少(所有其他条件相同)但它仍然存在。
不,WebSockets 是通过 TCP 传输的,所以它们是有序的。 UDP 传输是即发即弃的,它不发送任何接收通知,也不使用计时信息重新生成数据包,因此您可以更快地发送消息,但不能对接收、顺序或事件做出任何假设。页面印象是一个很好的例子,说明您实际上并不关心顺序是什么,并且您可能不太关心服务器何时收到此类消息,WebRTC 可能会在 JS 和服务器之间建立 UDP 连接,但该标准仍在不断涌现。目前,WebSockets 通过 HTTP 升级连接,这意味着它们是 TCP,其中订单信息和收据确认是一回事(来回发送的消息更多)。
同样的答案!这一切都发生在 TCP 上,因此整个行程是往返的,但顺序是有保证的。