基于网络的Python游戏+;Django和客户端浏览器轮询
我正在创建一个基于文本的游戏,它实现了一个基本模型,在这个模型中,多个(10+)玩家与数据交互,一个版主观察数据,并设置影响游戏性的特定环境统计数据 最近我开始熟悉Django。在我看来,这将是一个快速创建游戏的优秀工具,特别是因为我的游戏的本质在很大程度上取决于数据集(这非常适合数据库) 我想知道如何将游戏主持人所做的更改“推送”给玩家(例如,主持人可以决定向所有玩家显示一张图片)。游戏是基于回合的,不是实时的,但是某些信息需要大致实时地发布出来 我的想法是:我可以让每个玩家的浏览器定期(比如说,每30秒)轮询一次状态,看看是否有来自版主的消息。但这会造成延迟,意味着不同的玩家可能会在不同的时间收到延迟。把这个时间间隔缩短到你可以使用基于网络的Python游戏+;Django和客户端浏览器轮询,python,django,Python,Django,我正在创建一个基于文本的游戏,它实现了一个基本模型,在这个模型中,多个(10+)玩家与数据交互,一个版主观察数据,并设置影响游戏性的特定环境统计数据 最近我开始熟悉Django。在我看来,这将是一个快速创建游戏的优秀工具,特别是因为我的游戏的本质在很大程度上取决于数据集(这非常适合数据库) 我想知道如何将游戏主持人所做的更改“推送”给玩家(例如,主持人可以决定向所有玩家显示一张图片)。游戏是基于回合的,不是实时的,但是某些信息需要大致实时地发布出来 我的想法是:我可以让每个玩家的浏览器定期(比如
此外,如果您正在创建一个多人游戏,那么使用一个专为长轮询和多用户交互而设计的服务器,而不是使用标准HTTP服务器和框架,可能会更容易、更高效。除了Matti提到的长轮询,HTTP服务器也可以通过基本上使用一个非常长的响应来流式传输数据,并且永远不会完成响应(但继续将更多数据推送到客户端)。客户端可以在数据进入时继续响应数据。正如您所总结的,对于任何规模适中的项目来说,轮询可能是一个糟糕的解决方案 在开始之前,您需要对HTTP和Django有一个相当好的理解。这类技术更具前沿性,有时可能会比较复杂
有一个有趣的项目可能值得一看:。它是一个HTTP服务器,支持异步WSGI,并允许您使用Django开发COMET ish应用程序。(免责声明:我实际上没有使用evserver,但它在我的“酷东西”列表中。)这种解决方案与基于Javascript的即时通讯解决方案(如gmail chat)相比,是否具有可比性,或者这是完全不同的吗?有许多不同的方式来完成整个“Comet”的事情,我不确定gmail聊天使用哪种方式。并发连接的数量是多少?10+。。。平均20个,最多40个。