iOS多人游戏的实时消息传递

3
构建一个多人iOS游戏,玩家之间相互竞争。游戏的性质是同步的。基本上,玩家通过Facebook、电子邮件等方式邀请彼此,然后开始游戏。
我们正在讨论什么是促进玩家实时通信的最佳策略(发送事件等)。来自Web开发的经验,我们使用了Comet和长轮询,效果很好。然而,在iOS上实现这一点的最佳方法尚不清楚。
似乎APN(Apple Push Notifications)在我们的情况下不太合适,有两个原因:延迟可能相当大,最多几秒钟,据我们所知。此外,使用APN需要用户授权通知。如果用户不授权,则无法玩游戏。
另外,我们了解到苹果的Game Kit(Game Center)在我们的情况下可能很有价值,但是它与通过Facebook等邀请的互动方式尚不清楚。同时,也不清楚是否需要使用苹果的Game Center以及它将如何影响用户体验。
非常感谢您对此事的指导,以及您认为的其他选项。
3个回答

3
在你继续阅读之前,先声明一下:我是Realtime.co的员工,但我相信我可以帮到你,所以我并不是在“推销产品”。
如果你需要实时更新,你可以查看Realtime(www.realtime.co)。它基本上是一组工具,供开发人员在他们的项目中使用实时技术。它使用WebSockets,但如果你使用的是浏览器(虽然这不是你的情况,但了解一下总是好的),它会回退到用户浏览器支持的任何内容(例如长轮询)。
在Realtime背后,有一个一对一/一对多/多对多的消息传递系统,可将您的消息传递给您的用户,并从他们那里接收消息。
还有一个iOS API,可以在您的项目中使用。你可以在这里下载它:http://www.xrtml.org/downloads_62.html#ios 并查看这里的文档:http://docs.xrtml.org/getting_started/hello_message.html#ios

另外一个优点是,Realtime框架实际上是跨平台的。这意味着如果您决定将游戏扩展到其他平台,甚至可以让iOS玩家与使用Android、Windows Phone、HTML5、Flash等平台的玩家进行通信。

希望这有所帮助!


2

我将就这个问题提供一些见解。

APN不应该用于同步通信,至少对于iOS来说,你永远不会有双向通信(基本上是苹果的APN服务器向设备推送信息)。

您可能需要使用C sockets打开隧道(取决于您的游戏是否实时)。

使用苹果框架GameKit非常好!但可能需要一些时间来理解所有功能。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接