'MyConsumer' 没有属性 'clients_connected'`
'MyConsumer' has no attribute 'clients_connected'`
我正尝试按照本教程创建消费者
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__
中的最后一行,但理想情况下您希望使用会话来存储信息。
我正尝试按照本教程创建消费者
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__
中的最后一行,但理想情况下您希望使用会话来存储信息。