Django 频道,属性错误

Posted

技术标签:

【中文标题】Django 频道,属性错误【英文标题】:Django channels, AttributeError 【发布时间】:2020-08-16 09:01:25 【问题描述】:

我正在尝试学习如何使用通道 2 通过 websocket 发送消息。

我试图在客户端连接时发送一条简单的消息,但我不断收到属性错误:

class CameraOnlineConsumer(JsonWebsocketConsumer):
    def connect(self):
        self.accept()
        return self.send(
            "type": "websocket.accept",
            "send": 'a': "Hi"
        )

加注:

self.sendMessage(content.encode("utf8"), binary)
AttributeError: 'dict' object has no attribute 'encode'
WebSocket DISCONNECT /ws/camera_online/connect [127.0.0.1:36006]

改为:

 return self.send(
            "type": "websocket.accept",
            "send": "Hi"
        )

例如,返回相同的错误。

【问题讨论】:

【参考方案1】:
Try convert it to json like this ..


 import json    
    class CameraOnlineConsumer(JsonWebsocketConsumer):
            def connect(self):
                self.accept()
                return self.send(json.dumps(
                    "type": "websocket.accept",
                    "send": 'a': "Hi"
                ))

【讨论】:

以上是关于Django 频道,属性错误的主要内容,如果未能解决你的问题,请参考以下文章

Django 频道实时聊天:AttributeError:“消息”对象没有属性“as_dict”

Django 频道错误“关闭时间太长并被杀死”。

Django 频道中的消费者

在 Django 频道上找不到路径

Django 频道 + 在发布请求后发送 websocket 消息

Django 频道 + Elastic Beanstalk