我正试图同时在多台设备上触发我的Android应用程序中的一个动作(或者以尽可能低的延迟/移位)。
这些设备非常相似(品牌、型号、版本),通过USB连接到Macbook Pro上。到目前为止,我有4个设备,但最终解决方案将包括更多,所以我需要一个解决方案,与许多设备工作。
我尝试过在Wifi和USB上使用套接字(Socket.io和常规WS),但是每个设备的延迟略有增加,因此操作不会同步触发。
我还试着通过USB发送一个广播UDP数据包,这样可以得到更好的结果,但看起来非常不一致:最大延迟从10到100 to。
同步时钟是我正在考虑的另一个选择,但不确定它能在许多设备上达到多高的精度(在Android上NTP似乎很棘手)。
有解决这种需求的想法或模式吗?谢谢!
编辑
因此,在进行了一些测试之后,最准确的选择是按照Sam的建议(我正在使用这个图书馆)使用NTP同步设备时钟。我设法在我的4个设备之间实现了平均5毫秒的移动。
发布于 2019-11-12 11:59:33
首先是一些意见:
也就是说,我很想依靠他们的时钟来做这件事。NTP同步可能是很棒的(例如,亚毫秒精度非常容易),但对于移动设备可能不是这样(我认为Android客户机更关心的是电源,而小于几秒的任何东西对人类来说都是可以的)。尽管如此,他们的时钟应该是相当稳定的,所以让您的客户登记(随机,所以有较少的网络争用,并做了几次,以使NIC是适当地打开)。客户端可以使用它来计算出“事件”的时间,然后睡到之前的几毫秒。然后,他们可以醒来,做一个繁忙的循环检查时间(以确保CPU已启动),然后继续在适当的时间。
https://stackoverflow.com/questions/58791452
复制相似问题