【发布时间】:2020-06-12 05:03:12
【问题描述】:
我想最好使用 WebSockets(通道)。但问题是如何保证每台设备都拥有最新的数据集。例如,当一台设备离线,然后重新在线时,Django 频道会再次向他发送消息吗?对文章或示例有什么建议吗?提前致谢。
【问题讨论】:
标签: django websocket django-channels
我想最好使用 WebSockets(通道)。但问题是如何保证每台设备都拥有最新的数据集。例如,当一台设备离线,然后重新在线时,Django 频道会再次向他发送消息吗?对文章或示例有什么建议吗?提前致谢。
【问题讨论】:
标签: django websocket django-channels
Websockets 不会这样做,因为在每次连接之后,后端/服务器无法检测此连接是否与较早断开连接的用户连接相同,并重新发送较早失败的事件。实际上,websocket 连接一般没有办法检测前端是否接收到发送的事件或事件失败。
您需要做的是在前端编写一个同步逻辑,这样当它重新连接回服务器时,需要通过 API 或 websockets(无论您喜欢什么)更新需要更新的内容。但关键是必须在最后编写同步逻辑。一般来说,如果您构建聊天应用程序,我们会根据在多个 API(例如 fetchNewMessages 和 fetchNewRooms)中提供最后同步时间来在前端存储最后同步时间并更新数据
【讨论】: