我在Django项目中有一个常见的聊天消息模型。消息模型如下所示:
class Message(models.Model):
writer = ...
chatroom = ...
body = models.TextField(verbose_name="Body", null=True, blank=True)
imagemsg = models.ImageField(upload_to='message/%Y/%m/%d/', blank=True)
然后在我的消费者中,我将 body 发送到前端,如下所示:
class ChatConsumer(AsyncConsumer):
async def websocket_receive(self, event):
...
myresponse = {
"message": msg,
'username': username,
}
await self.channel_layer.group_send(
self.room_group_name,
{
"type": "chat_message",
"text": json.dumps(myresponse),
}
)
这也是前端将数据发送到后端的方式:
socket.onopen = function (e) {
formData.submit(function (event) {
var finalData = {
"text": msg.val()
};
socket.send(JSON.stringify(finalData));
});
}
因此,可以毫无问题地来回发送文本,并且实时行为可以正常进行。现在,我希望图像具有相同的行为。也就是说,从socket.onopen
发送它们,然后使用async def websocket_receive
将它们发送回去。
不幸的是,我在任何地方都找不到很多文档。所以我想知道是否有人可以给我一些有关如何实现这一目标的提示。或者即使这是正确的方法,
谢谢