首页 > 解决方案 > 当与客户端没有连接时,有没有办法持续更新服务器端数据?

问题描述

我正在创建一个实时浏览器多人游戏,您可以在其中移动小队在全球范围内,您可以与附近的其他小队作战。
我正在使用 django 框架,我将使用 django-channels,它使用 webSockets 进行实时通知。

在数据库中每个小队都有它在经纬度健康、道德方面的位置。

问题是,当您移动一个小队并且用户关闭浏览器时,我如何才能不断更新该小队位置以开始与可能的附近小队进行交互。

例如,我想将我的小队从 A 移动到 C,这需要 6 个小时,所以我在 30 分钟后断开连接(关闭浏览器)。但是 4 小时后,我的小队在 B 遇到了一个敌方小队,一场战斗应该开始更新我的敌方小队属性(健康、道德、小队停止)。
在没有用户推送数据(POST、GET、WebSocket)并触发数据库更改的情况下,我如何继续更新我的小队位置。

我带来了长轮询:每 x 次发出请求(由于移动缓慢,因此不需要非常频繁)。但是为此,我需要使用单独的“轮询服务器”或进程吗?

标签: djangowebsocketreal-timegame-enginedjango-channels

解决方案


推荐阅读