你们如何为iPhone游戏创建在线游戏功能?显然,人们可以经常轮询服务器,但考虑到设备的功能,这是否真实?假设您每隔一两秒轮询服务器并检索100个字节的数据......是否可以在游戏过程中继续检索后台数据,或者是否会被服务器轮询阻止?
提前致谢, BCH
答案 0 :(得分:5)
您需要创建一个多线程应用程序。然后你可以让后台线程轮询服务器(或者更好,在它上面发出异步请求。
查看NSOperation和NSOperationQueue类。您将使每个后台任务由NSOperation类的实例表示。该类负责启动操作,确保它们以适当的顺序运行,并考虑您设置的任何优先级。
使用NSOperation的最常用方法是编写自定义子类并覆盖方法main。当NSOperationQueue计划运行时,调用main方法执行操作。
如果您不想要子类化的开销,请查看NSInvocationOperation类。这是NSOperation的一个具体子类,可以很容易地将操作附加到现有方法。可以将NSInvocationOperation对象添加到NSOperationQueue(就像NSOperations一样),这样就可以在不必子类化的情况下获得多线程。
答案 1 :(得分:1)
您可以执行异步请求。但是你在这里问一个非常非常难的问题。只是想确保你知道。
答案 2 :(得分:1)
看看WiTap示例(在xcode中对witap进行全文搜索)。它使用NSStreams来获取异步行为,而无需使用管理自己的线程或轮询。
答案 3 :(得分:0)
使用OpenFeint ..它允许您轻松开发全球非实时回合制多人游戏...
我不确定GameCenter现在是否支持类似的功能。