gpt4 book ai didi

python - Python + Django 和客户端浏览器轮询中的基于 Web 的游戏

转载 作者:行者123 更新时间:2023-11-28 19:28:23 26 4
gpt4 key购买 nike

我正在创建一个基于文本的游戏,该游戏实现了一个基本模型,在该模型中,多名(10 名以上)玩家与数据交互,一名主持人观看他们并设置影响游戏玩法的某些环境统计数据。

最近开始熟悉Django。在我看来,这将是快速创建游戏的绝佳工具,特别是因为我的游戏的性质在很大程度上取决于数据集(这非常适合数据库)。

我想知道如何将游戏版主所做的更改“推送”给玩家(例如,版主可以决定向所有玩家显示图像)。游戏是回合制的,不是实时的,但某些消息需要大致实时地推送。

我的想法:我可以让每个玩家的浏览器定期(比如每 30 秒)轮询一次状态,看看是否有来自版主的消息。但这会造成延迟,意味着不同的玩家可能会在不同的时间收到它。将此间隔减少到 <10 对服务器来说似乎不是个好主意。

是否有更好的方式通知客户变更?除了使用像 Django 这样的 Web 框架之外,您还有其他建议吗?

谢谢!

最佳答案

除了 Matti 提到的长轮询之外,HTTP 服务器还可以通过基本上使用一个非常长的响应并且从不完成响应(但继续向客户端推送更多数据)来流式传输数据。客户端可以在数据传入时继续对其做出响应。正如您已经得出的结论,轮询对于任何规模适中的项目来说可能都是一个糟糕的解决方案。

在开始之前,您需要对 HTTP 和 Django 有相当透彻的了解。这种技术有点前沿,有时可能很复杂。

有一个有趣的项目可能值得一试:evserver .它是一个支持异步 WSGI 的 HTTP 服务器,允许您使用 Django 开发类似 COMET 的应用程序。 (免责声明:我实际上并没有使用过 evserver,但它在我的“值得尝试的酷东西”列表中)

关于python - Python + Django 和客户端浏览器轮询中的基于 Web 的游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com