我需要在2个不同iPad上运行的同一个应用程序的2个实例之间建立一个简单的界面,可以在它们之间进行通信。
这个想法是在它们之间创建一个永久链接(通过交换某种ID),即使在一个或两个iPad重新启动后也可以保留(可能通过存储Id),而无需用户干预
为了上下文,该界面可用于例如共享购物清单应用程序或1对1转基础游戏。
应用程序不需要在附近,也不需要在发送数据时都激活(接收器可以在发送数据时关闭,稍后再接收)
我想,如果可以的话,需要使用gamekit来完成。可以这样做吗?如果是这样,怎么样?
谢谢
答案 0 :(得分:0)
有很多方法可以做到这一点。但总的来说:
数据库:您需要服务器端数据库来存储公共数据。最常见的选择是:i)托管您自己的数据库服务器并创建REST API端点以访问数据存储区,ii)使用许多平台即服务(PaaS)公司(Parse,Stackmob,Azure等) 。通常,PaaS提供了一种更便宜的快速启动和运行方式,如果应用程序相当复杂,您可能只需要自己的服务器。如果需要,您可以随时启动PaaS并转换为专有。
同步:要在设备之间进行通信,您的选项是i)客户端轮询(即每n秒/分钟检查数据库的更新),或ii)在插入/更新记录时从服务器推送通知) 。对于推送,您将希望避免使用APNS(Apple推送通知服务),因为无法保证邮件传递(用户可以拒绝接收推送通知)并且您将要创建自己的套接字连接或使用推送服务,如Pusher或PubNub,提供从服务器到客户端的可靠消息传递。您只想在应用关闭时实施APNS(通知用户新活动)。当应用程序打开时,请使用上面列出的一种更可靠的方法。
这是一般的方法论。
编辑:要明确,没有可靠的方法可以在不使用a)服务器存储消息/状态的情况下执行此操作,b)像Pusher或PubNub这样的第三方服务可以在设备之间可靠地传递消息,无论是其他设备是否处于活动状态(实际上您只是使用他们的服务器而不是您自己的服务器)。您可以跳过使用自己的服务器/数据库,只需使用可靠的服务来回发送消息,并让它们各自在本地维护状态并进行同步。但请注意,APNS不是一个可靠的消息传递服务,用于保持这样的同步。