class AllEventConsumer(WebsocketConsumer):
def connect(self):
self.room_name = str(self.scope['url_route']['kwargs']['user_id'])
self.room_group_name = 'all_event_'+self.room_name
print('connect')
print(self.room_group_name)
async_to_sync(self.channel_layer.group_add(
self.room_group_name,
self.room_name
))
async_to_sync(self.channel_layer.group_send(
self.room_group_name , {
'type': 'update.list',
'value': 'Value'
}
))
self.accept()
event = Synopsis_Event.give_all_events(self.room_name)
self.send(text_data=json.dumps({
'room_id': self.room_group_name,
'payload': event
}))
def update_list(self, event):
print('inside update_list')
print(event)
data = json.loads(event['value'])
self.send(text_data=json.dumps({
'payload': data
}))
def disconnect(self, close_code):
async_to_sync(self.channel_layer.group_discard)(
self.room_name, self.room_group_name
)
self.disconnect(close_code)
def receive(self, text_data=None, bytes_data = None):
print('DEF')
print(type(json.loads(text_data)))
async_to_sync(self.channel_layer.group_send)(
self.room_group_name , {
"type": "update.list",
"value": text_data
}
)
字符串
这是我的代码,我写了group_send,它不工作,所以我把它添加到连接中,只是为了测试它是否被触发,但它不工作
尝试使用Django通道文档,代码没有变化。
1条答案
按热度按时间b5lpy0ml1#
下面是我如何得到我的答案。我们不能创建自定义频道名称,所以我创建了现有的频道名称组
字符串
在上面的代码连接我从self.room_name改为self.channel_name和它的工作完美.它也与AsyncWebsocketConsumer工作正常.