【发布时间】:2022-02-10 19:38:17
【问题描述】:
我是 Django 频道的新手,我正在构建一个简单的聊天室。有了这个聊天室,如果用户关闭浏览器选项卡,我想断开用户的连接,如果他用相同的链接重新打开选项卡,我想将他重新连接到他原来的聊天室。我该怎么做?
【问题讨论】:
标签: django django-rest-framework django-channels
我是 Django 频道的新手,我正在构建一个简单的聊天室。有了这个聊天室,如果用户关闭浏览器选项卡,我想断开用户的连接,如果他用相同的链接重新打开选项卡,我想将他重新连接到他原来的聊天室。我该怎么做?
【问题讨论】:
标签: django django-rest-framework django-channels
为了重新连接到同一个 WebSocket,您只需再次连接到同一个 URL。在客户端(浏览器)端,您可以使用示例 JavaScript 代码:
webSocket = new WebSocket('ws:/localhost:8000/ws/chat/');
当没有客户端连接时,服务器端(“后端”,即 Django Channels)关闭连接。
您的意思可能是您想访问聊天记录,是吗?据我了解,WebSocket 它是一种通信协议(在某种意义上类似于 HTTP)。所以它只是用来发送消息,而不是存储它们。无论如何,您都应该将消息存储在某个地方,例如,在数据库中。然后,在“重新连接”时,您实际上是通过views 从数据库中获取消息,或者以不同的方式使用consumers。
希望对您有所帮助。您必须为我指定一个具体的场景才能进一步帮助您。
【讨论】: