【问题标题】:Websocket Communication Latency QuestionsWebsocket 通信延迟问题
【发布时间】:2016-03-16 17:03:41
【问题描述】:

关于 websocket 连接的 3 个小问题

  1. 当客户端向服务器发送数据时存在延迟。当服务器向客户端发送数据时,是有延迟还是即时的?

  2. 如果客户端在特定行中以非常快的速度向服务器发送数据 - 比如说 [1, 2, 3],是否有可能由于延迟或其他原因,将接收到的数据服务器在不同的行? (如 [2, 1, 3])

  3. (与问题#2相同,但在服务器发送数据时)

【问题讨论】:

    标签: javascript php websocket latency


    【解决方案1】:
    1. 是的,存在延迟。它仍然是一个连接,仍然有一条链可以导航。延迟仅在事情发生变化时才重要,并且考虑到消息到达客户端需要 X 时间,客户端需要另外 X 毫秒来处理它,状态很可能会在这些毫秒期间发生变化。就像 HTTP 请求(WebSockets 几乎是同一件事)变得“热”一样,我相信延迟会减少(所有其他条件都相同),但它仍然存在。

    2. 不,WebSockets 是通过 TCP 的,所以它们会按顺序排列。 UDP传输是即发即弃的,它不发送任何接收通知,也不使用时间信息重新生成数据包,因此您可以更快地发送消息,但不能对接收或订单或事件做出任何假设。页面印象将是一个很好的例子,说明您实际上并不关心以什么顺序,并且您可能不太关心服务器何时收到此类消息,WebRTC 可能会在 JS 和服务器之间带来 UDP 连接,但标准仍在出现。目前,WebSockets 通过 HTTP 升级进行连接,这意味着它们是 TCP,其中订单信息和收据确认是一回事(来回发送更大和更多的消息)。

    3. 同样的答案!这一切都发生在 TCP 上,所以整个行程都是往返的,但顺序是有保证的。

    【讨论】:

    • 您能否详细说明其中的内容和原因?
    • 谢谢。对于问题 #1:服务器延迟 = 客户端延迟? (如果客户端有 200 毫秒的延迟,服务器也是如此?)谁负责服务器延迟服务器或客户端?
    • 我不是这方面的专家,但我会尽量详细说明。
    猜你喜欢
    • 2021-02-12
    • 1970-01-01
    • 2022-06-27
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2011-01-14
    相关资源
    最近更新 更多