如何通过 websockets 同步两个 javascript 计时器

Kie*_*sen 2 javascript audio websocket node.js

我有一个带有 js 视觉节拍器(如指挥)的网站,可以通过多台机器上的 websocket 触发。如何使节拍器的启动尽可能同步?

谢谢。

Bra*_*rad 5

我要做的是测量延迟,并相应地进行补偿。

对于与服务器的每个连接,服务器应定期发送 ping 消息(不是真正的 ICMP ping...只是通过已建立的 websocket 通道发送的一些消息),并测量从客户端获取响应所需的时间。将此延迟除以 2,您就可以大致猜测消息从服务器到达客户端所需的时间。

一旦了解了这一点,您就可以估计两个客户端之间的时间差异,并进行相应的调整。

请注意,这无论如何都不完美。我将完全在客户端维护您的节拍器时钟,并且仅使用与服务器的通信进行调整。这将为用户提供更流畅的性能。