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

标签 iphone ios objective-c sockets synchronization

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

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

问题是 iOS 设备可能会存在 1 或 2 秒的差异,这会导致不同步。甚至时间戳在每个设备上都指出相同的时间(AFAIK),它们不是毫秒敏感度。

有什么方法可以在多个设备上同时触发事件,或者应该遵循的方法吗?

最佳答案

不要通过 Internet 发送数据。您不能假设连接延迟足够低以满足您的需求。请改用蓝牙。您可以使用 GameKit、dns-sd 或像 HHServices 这样的库来完成。 .

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

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

关于iphone - 在多个 iOS 设备上同时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16489899/

相关文章:

iphone - 更改 iPhone 上选项卡栏的颜色

iphone - 子类化的 UIView 没有设置标签

ios - 突出显示时如何从 UIButton 中删除 CAGradientLayer

ios - 尝试使用 NSTimer 以 2 秒的间隔执行方法?

iphone - 启动应用程序 Iphone 纵向和 Ipad 横向

ios - 在导航栏和 UITableView 之间插入边距

ios - iOS 上的电话应用程序

iphone - iOS MKMapView,底部有位置搜索

iOS:保存到文件中可以在模拟器上使用,但不能在设备上使用

ios - 在应用程序中更改 MKMapView 显示语言