用于iPhone应用程序的多人服务器,使用设备作为套接字服务器

时间:2010-03-01 21:06:21

标签: iphone objective-c sockets device

我正在开发一款多人iPhone应用程序,允许最多6位用户“实时”连接和玩游戏。我一直在关注托管和非托管套接字服务器(SmartFoxElectroServerPhoton/NeutronProjectDarkstar),我想知道是否有人对服务有任何建议还是实施?任何人都知道像Zynga的Live Poker这样的游戏用于这种类型的功能或者你可能需要什么样的硬件?

一些子问题:

  1. 游戏基于回合制。使用AMF和轮询服务器或者我应该选择基于套接字的路由更有意义吗?我目前关注的是并发连接限制和托管成本。

  2. 是否可以将设备“广播”为套接字服务器?即,一旦我连接了所有玩家,我是否可以将6个设备中的一个分配为套接字服务器并通过该设备推送所有通信?那会疯了吗?这将解决并发问题,我只需要依赖套接字服务器服务作为初始连接的大厅。分配的用户将保持连接以促进游戏与服务器之间的通信。

1 个答案:

答案 0 :(得分:2)

1

使用轮询更容易,并且由于游戏是基于回合制的,因此您可以以相对较慢的速率(可能是几秒钟)轮询,这意味着更少的电池消耗。也就是说,使用套接字或持久的HTTP连接将是一种更为灵活的方式(以及更多的工作)。这两个问题可能会引起关注:

How do I create a chat server that is not driven by polling?

COMET (server push to client) on iPhone

我不知道你为什么要使用AMF。为什么不用JSON?或者也许HessianKit

2。 将其中一个设备指定为服务器是很有意义的。拥有一个完全分散的游戏客户端网络需要同步是一项非常艰巨的任务。同样,由于您的游戏基于回合制,不需要完美的实时同步,因此您不必担心拥有集中状态会导致更多延迟。

如果您打算让用户通过本地网络播放,您应该考虑使用GameKit。