iphone - 如何在同一网络中的多部 iPhone 上同步应用程序状态?

标签 iphone networking synchronization bonjour multiple-instances

我正在开发一个 iPhone 应用程序,基本上可以通过单击来执行一系列操作。这些系列是预定义的并与通用配置服务器同步。

该应用可能同时在多个设备上运行。假定所有设备都定义了相同的一系列操作。所有设备都被认为是平等的,不存在服务器和多个客户端或类似的东西。

(仅)一个人在任何给定时间使用这些设备中的一个,但是该人有可能在任何给定时间切换到不同的设备。所有“被动”设备都需要与主动设备同步,以便它们显示相同的操作。

整个事情应该尽可能自动发生。无需选择设备、配置,同一网络中的所有设备都参与同一系列的操作。

另一个要求是设备可以在演示期间加入(一系列操作),并且需要跳转到当前事件的操作。

现在,我看到有两个选项来实现网络/通信部分:

  • 你好。我已经实现了一个工作原型(prototype),它可以自动与网络中的一(1)个其他设备连接并与之通信。我目前不确定“多个设备”要求需要多少额外工作。我是否必须为每个设备打开一组连接并手动将同步事件发送到所有设备?有没有更好的方法或者 bonjour 是否提供了任何帮助我的方法?如果我想与网络中的每台设备进行通信,Bonjour 可以提供什么?

  • 使用 AsyncUdpSocket 进行多播。只需定义一个端口并将多播同步事件发送到该端口即可。我想与使用 bonjour 和 tcp 相比,主要问题是连接不安全并且数据包可能丢失。然而,如果这确实是一个问题,那么这是在一个低流量的私有(private)、 protected WLAN 网络中。还有其他我没有看到的缺点吗?因为这听起来是一个相对简单的选择......

您会推荐哪一个?或者还有其他我没有想到的更好的选择吗?

最佳答案

您应该查看 GameKit(内置于 iOS)——它们在一个方便的包中提供了您需要的大量机制。您可以轻松发现网络上的对等点,并轻松地在客户端之间来回发送数据(广播或点对点)

关于iphone - 如何在同一网络中的多部 iPhone 上同步应用程序状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5863003/

相关文章:

iphone - 线程崩溃问题

iphone - 如何从一个方法返回多个值

php - 移动应用程序如何使用 API 并证明其要修改的 Facebook ID 已在 Facebook 上登录并获得授权?

c - C Socket编程中的多个客户端

iphone - iOS 6 WebDriver 编译

docker - 允许 docker swarm 服务绑定(bind)主机 ip 接口(interface)

javascript - 如何从网页读取并运行硬盘上的文件?

c# - 一次将代码部分锁定到一个入口

git - 保持多个(非裸)Git repos 同步的最佳/最简单方法

java - 在俄罗斯方 block 游戏中正确使用 wait()/notify()