我正在开发一个 iPhone 应用程序,它允许基本上点击一系列操作。这些系列是预定义的,并与通用配置服务器同步。
该应用程序可能同时在多个设备上运行。假定所有设备都定义了相同的一系列操作。所有设备都被认为是平等的,没有服务器和多个客户端或类似的东西。
(仅)一个人在任何给定时间使用其中一个设备,但是该人有可能在任何给定时间切换到不同的设备。所有“被动”设备都需要与主动设备同步,以便它们显示相同的动作。
整个事情应该尽可能地自动发生。不选择设备、配置,同一网络中的所有设备都参与同一系列动作。
一个额外的要求是设备可以在演示(一系列动作)期间加入,并且需要跳转到当前活动的动作。
现在,我看到了两个选项来实现其中的网络/通信部分:
你好。我已经实现了一个工作原型,它可以自动与网络中的一 (1) 个其他设备连接并与之通信。在这一点上,我不确定“多设备”要求有多少额外的工作。我是否必须为每个设备打开一组连接并手动将同步事件发送给所有设备?有没有更好的方法或者 bonjour 提供什么来帮助我解决这个问题?鉴于我想与网络中的每台设备进行通信,Bonjour 提供了什么?
使用 AsyncUdpSocket 进行多播。只需定义一个端口并将多播同步事件发送到该端口即可。我想与使用 tcp 的 bonjour 相比,主要问题是连接不安全并且数据包可能会丢失。但是,如果这确实是一个问题,那么这是在一个低流量的私有、受保护的 wlan 网络中。还有其他我没有看到的缺点吗?因为在这一点上这听起来是一个相对简单的选择......
你会推荐哪一个?还是有其他更好的选择,我没有想到?