0

我需要在运行在 2 个不同 iPad 上的同一应用程序的 2 个实例之间构建一个简单的接口,它们可以在它们之间进行通信。

这个想法是在它们之间创建一个永久链接(通过交换某种 ID),即使在一个或两个 iPad 重新启动后也可以保持(可能通过存储 ID),而无需用户干预。

出于上下文的考虑,该界面可用于例如共享购物清单应用程序或一对一回合基础游戏。

应用程序不需要在附近,也不需要在发送数据时两者都处于活动状态(发送数据时可以关闭接收器,稍后再接收)

我想,如果可能的话,需要使用 gamekit 来完成。这可以做到吗?如果是这样,怎么做?

谢谢

4

1 回答 1

0

有很多方法可以做到这一点。但总的来说:

数据库:您需要一个服务器端数据库来存储公共数据。最常见的选项是 i) 托管您自己的数据库服务器并创建 REST API 端点以访问数据存储,ii) 使用许多平台即服务 (PaaS) 公司(Parse、Stackmob、Azure 等) . 一般来说,PaaS 提供了一种更便宜、更快的启动和运行方式,如果应用程序相当复杂,您可能只需要自己的服务器。如果需要,您可以随时启动 PaaS 并在以后过渡到专有。

同步:要在设备之间进行通信,您的选择是 i) 客户端轮询(即每 n 秒/分钟检查一次数据库的更新),或 ii) 在插入/更新记录时从服务器推送通知)。对于推送,您需要避免使用 APNS(Apple 推送通知服务),因为无法保证消息传递(用户可以拒绝接收推送通知),并且您需要创建自己的套接字连接或使用推送服务,例如Pusher 或 PubNub 提供从服务器到客户端的可靠消息传递。您只想在应用关闭时实施 APNS(以通知用户新活动)。当应用程序打开时,使用上面列出的更可靠的方法之一。

这就是一般的方法。

编辑:需要明确的是,如果不使用 a) 存储消息/状态的服务器,b) 像 Pusher 或 PubNub 这样的第三方服务来可靠地在设备之间传递消息,则没有可靠的方法可以做到这一点,无论其他设备是活跃与否(实际上你只是使用他们的服务器而不是你自己的)。您可以跳过使用自己的服务器/数据库,而只需使用可靠的服务来回发送消息,并让它们各自在本地维护状态并同步。但请注意,APNS 并不是一个可靠的消息传递服务,无法像这样保持同步。

于 2013-10-20T05:41:13.383 回答