使用Django频道发送图像

时间:2020-05-24 23:26:26

标签: django django-channels

我在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将它们发送回去。

不幸的是,我在任何地方都找不到很多文档。所以我想知道是否有人可以给我一些有关如何实现这一目标的提示。或者即使这是正确的方法,

谢谢

0 个答案:

没有答案