«Кто первым дошёл» измеряет сеть, а не реакцию: 20 мс с Wi-Fi против 150 мс на 4G, туда-обратно 260 мс. Это больше, чем разница реакции между живыми людьми.
Честнее сравнивать метки по общим часам. Отдельный ping не нужен: в каждом SSE-снимке есть now. Считаем offset = now − Date.now() и берём максимум из последних 20 замеров.
Метку сервер принимает с оговорками: окно сбора 250 мс после первого нажатия, не раньше чем за 400 мс до прихода. Кнопка на pointerdown, не click.
https://habr.com/ru/articles/1101810/
Views: 3