关于websocket连接的3个迷你问题
当客户端向服务器发送数据时,存在延迟。当服务器向客户端发送数据时是否有延迟或者是即时的?
如果客户端在特定行中非常快速地向服务器发送数据 - 假设[1,2,3],由于延迟或其他原因,是否有可能通过服务器在另一行? (如[2,1,3])
(与问题#2相同,但服务器发送数据时)
答案 0 :(得分:2)
是的,有延迟。它仍然是一个连接,仍然有一个链导航。延迟仅在事情发生变化时才有意义,并且假设消息需要X时间到达客户端,而客户端需要另外X ms来做任何事情,很可能状态将在这些ms期间发生变化。就像HTTP请求(WebSockets几乎是同一件事)变得“热”一样,我相信延迟会减少(所有其他条件相同)但它仍然存在。
不,WebSockets是通过TCP进行的,因此它们将按顺序排列。 UDP传输是即发即弃的,它不会发送任何接收通知,也不会使用定时信息重新生成数据包,因此您可以更快地发送消息,但不能对接收或订单或事件做出任何假设。页面印象将是一个很好的例子,你不在乎什么顺序,你可能不太在乎服务器收到这样的消息,WebRTC可能会带来JS和服务器之间的UDP连接,但标准仍然出现。目前,WebSockets通过HTTP升级连接,这意味着它们是TCP,其中订单信息和收据确认是一件事(更多和更多的消息来回发送)。
答案相同!这一切都发生在TCP上,因此整个行程都是往返行程,但订单是有保证的。