我正在尝试在单独的设备上预编程一个间隔功能,以便彼此同步。因此,几个运行相同间隔的移动设备同步运行。起初我以为我可以使用设备内部时钟并在0分钟启动功能。我现在意识到移动时钟并非真正准确,并且彼此不同步。现在我需要一个新的解决方案。
我使用heroku,node.js,socket.io和ionic如果有帮助的话。
答案 0 :(得分:0)
从概念上讲,您可以执行以下操作:
这将与您在步骤1中建立的时间参考一样准确,并且这是棘手部分的位置,并且确定了准确性不足的准确性。在这篇文章中有一种方法的描述:Measuring time difference between networked devices。
在客户端时钟和参考时钟之间建立时间增量后,您可以在本地存储该增量,并且可以将该增量应用于来自服务器的任何未来时间指令。因此,如果您收到指令在12:30:05.00执行某些操作,但您的客户端时钟已从服务器参考快速测量为+12.33秒,那么您将从预定时间减去+12.33秒设置一个定时器,在本地时钟上以12:29:52.67开启。
通过在将来的特定时间发送指令,您可以处理到每个客户端的传输时间可能不同的事实。您可以在将来的任何时间进行选择,但未来的时间不得超过任何客户的最长运输时间。您还可以从每个客户端测量并将其报告给服务器,或者如果您有足够的时间提前安排,您可以提前至少几秒钟发送带有指令的消息(比任何传输时间可能更长)在正常的操作条件下)。