在多个iOS设备上同时触发事件

时间:2013-05-10 19:55:52

标签: iphone ios objective-c sockets synchronization

我想在同一时间(以毫秒为单位)在多个iOS设备上触发事件(例如播放音乐)

我的方法是保持套接字连接并向iOS设备发送时间戳(从当前时间开始10秒后)并在该时间戳上触发iOS设备上的事件。

问题是iOS设备可能会有1到2秒的不同,这会导致失步。甚至时间戳在每个设备(AFAIK)上同时指出它们没有达到毫秒级的灵敏度。

有没有办法在多个设备上同时触发事件,或者应该遵循哪种方法?

1 个答案:

答案 0 :(得分:1)

不要通过互联网发送数据。您无法假设连接延迟足够低以满足您的需求。请改用蓝牙。您可以使用GameKit,使用dns-sd或使用像HHServices这样的库。

选择一个充当控制器的设备。 Apple提供了使用GameKit的示例代码,但是想出自己的方法并不困难。当您想要触发操作时,该控制器将通过蓝牙将数据包发送到其他设备。

我怀疑你需要比这更低的延迟,但如果你这样做,让控制器向每个连接的设备发送数据包以确定每个连接的延迟,让他们将时间戳发送到控制器,然后控制器应该能够计算每个将同时发生的时间戳。