针对在线Flash游戏的轮询与套接字服务器

时间:2010-05-30 08:16:33

标签: flash sockets polling multiplayer

我想制作一款在线Flash游戏,它将具有社交功能,但游戏玩法主要是单人游戏。例如,屏幕上不会同时出现两个播放器,社交互动将通过异步消息,不会有实时聊天或任何事情。大部分逻辑都会发生在客户端,服务器会验证客户端逻辑,但它不需要完全同步,这就是我认为轮询可能令人满意的原因。

我已经在很多地方读过,套接字服务器比在网络游戏中使用轮询效率更高,但这主要是考虑到游戏的多玩家多玩家交互多于我所说的游戏?如果许多用户同时在线玩游戏,但每个玩家都玩一个相对孤立的游戏,并且没有与每个玩家实时交互,那么轮询就可以了,或者无论你有什么在网上都可以使用套接字你想象很多人同时玩的游戏?谢谢!

1 个答案:

答案 0 :(得分:2)

你有什么样的服务器?它是否支持持久连接(即它可以自己运行循环)还是仅支持stateless模式(客户端必须轮询)?

有状态

Quake / Half-life等多人游戏运行在与连接客户端保持持久连接的服务器上。这样效率更高,因为它可以将相关的游戏状态保存在RAM内存中,而不是在每条消息后将其保存到光盘/数据库中。

无国籍

如果您有一个Web服务器(例如PHP),您几乎只限于无状态模式,您只需等待客户端消息,从数据库加载所有相关信息,进行一些计算然后将答案返回给客户端。在这种情况下,您需要为每个“事务”(客户端轮询)执行所有这些操作。

如果通信稀疏且简单,则无状态服务器实际上可能是更好的选择。它很容易实现。