'MyConsumer' 没有属性 'clients_connected'`

'MyConsumer' has no attribute 'clients_connected'`

我正尝试按照本教程创建消费者

https://channels.readthedocs.io/en/stable/generics.html

class MyConsumer(WebsocketConsumer):
 def __init__(self,path):
    WebsocketConsumer.__init__(self,path)
    self.client_id_seed = 0
    self.clients_connected = 0
    # The following are passed on to RosbridgeProtocol
    self.fragment_timeout = 600                  # seconds
    self.delay_between_messages = 0              # seconds
    self.max_message_size = None
    self.protocol = None

 def connection_groups(self):
    """
    Called to return the list of groups to automatically add/remove
    this connection to/from.
    """
    return ["test"]

 # Connected to websocket.connect
 def connect(self,message):
    parameters = {
        "fragment_timeout": self.fragment_timeout,
        "delay_between_messages": self.delay_between_messages,
        "max_message_size": self.max_message_size
    }
    try:
        self.protocol.outgoing = self.receive
        self.client_id_seed += 1
        self.clients_connected += 1
    except Exception as exc:

        print ("Unable to accept incoming connection.  Reason: %s" % str(exc))
    print "Client connected.  %d clients total." % self.clients_connected
    self.message.reply_channel.send({"accept": True})


 # Connected to websocket.receive
 def receive(self,text=None, bytes=None):
    # binary = type(message)==bson.BSON
    self.send(text=text, bytes=bytes)

 # Connected to websocket.disconnect
 def disconnect(self,message):
    self.clients_connected -= 1

我在标题中遇到了错误,但我已经在我的构造函数中明确定义了它。错误是从 disconnect 方法

调用的

不应使用这样的构造函数创建消费者。每次请求进入时都会创建一个新的消费者对象。此外,构造函数将消费者置于等待状态并且从不在其下运行代码。

解决上述错误的最佳方法是将 super 构造函数移动到 __init__ 中的最后一行,但理想情况下您希望使用会话来存储信息。