轮询与套接字服务器在在线Flash游戏中的比较

3
我希望制作一个在线Flash游戏,它将具有社交功能,但游戏玩法主要是单人游戏。例如,不会同时出现两个玩家在屏幕上,社交互动将通过异步消息进行,不会有实时聊天或其他内容。很多逻辑将发生在客户端,服务器将验证客户端逻辑,但它不需要完全同步,这就是为什么我认为轮询可能是令人满意的原因。
我已经在许多地方阅读到,套接字服务器比使用轮询更有效,但这是否主要考虑了比我描述的游戏更多的多人游戏和多人互动?如果许多用户同时在线玩游戏,但每个人都在玩相对孤立的游戏,并且不与其他玩家进行实时交互,那么轮询是否可以,或者无论如何,如果您拥有一款在线游戏,预计许多人同时玩,是否建议使用套接字?谢谢!
1个回答

2
你们用的是什么样的服务器?它支持持久连接(即能否自主运行循环),还是只支持无状态模式(您的客户端必须轮询)?
有状态
像 Quake/Half-life 等多人游戏都运行在保持与连接的客户端的持久连接的服务器上。这样更有效率,因为它可以将相关的游戏状态保留在 RAM 内存中,而不是在每个消息后将其保存到磁盘/数据库中。
无状态
如果你使用 Web 服务器(例如 PHP),你就基本上限制在无状态模式下,也就是等待客户端消息,从数据库加载所有相关信息,进行一些计算,然后返回给客户端答案。在这种情况下,您需要为每个“事务”(客户端轮询)执行所有这些操作。
如果通信稀疏并且简单,无状态服务器实际上可能是更好的选择。它非常容易实现。

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