我正在使用django-channels在websockets上提供一个聊天应用程序。我将消息存储在数据库中。我希望一旦新消息被写入数据库,我就能够向客户端发送新消息。我该怎么做呢?我想我需要做一个接收post_save信号的WebSocketConstructor,但是我不知道如何向django-channels用户发送信号。
发布于 2021-08-22 01:32:02
您可以在您的WebSocket使用者内部调用它
from channels.db import database_sync_to_async
@database_sync_to_async
def create_message(self, content):
new_message = global_message.objects.create(
sender=self.scope['user'],
content=content)
new_message.save()
return new_message你可以在这里阅读更多关于它的内容:Django channels docs: Database Access。或者您可以在这里查看我的源代码:ahmedyasserays/onlinechat
发布于 2020-10-14 04:15:40
你应该像告诉in the Channels docs的那样使用这里的通道层。
因此,在您的post_save信号中,您可以将消息从数据库发送到通道层(但将消息与通道/组匹配的问题尚未解决-我认为其中一些信息应该保存在数据库中)。
https://stackoverflow.com/questions/64309265
复制相似问题