Start timers on different devices at the exact same time

Viewed 30

I am essentially trying to create a web app where one person can start a timer, and everyone else's timers (on different computers/phones) will start at the exact same time. I am currently using node.js and websockets. When the "master" timer hits start, the server uses websockets to tell all the devices to start. Since all the users should be on the same LAN, I thought I would not have to compensate for latency, but the timers are starting a few hundred milliseconds off of each other, and for my purposes, it is very noticeable. There isn't much delay between PCs, but mobile phones tend to be the most off of each other.

What would be the best way to get everything to start at the same exact time, within a margin of error of let's say, 50ms? I do not mind if the timers take a few extra seconds to start if the delay between them is within 50ms.

1 Answers

Send a timestamp to the clients when to start the timer. Then the accuracy is tied to the accuracy of the system time.

If you can't ensure that the system time is accurate, another way would be to meassure latency and add it as an offset.

Related