import json from channels.generic.websocket import AsyncWebsocketConsumer class QueConsumer(AsyncWebsocketConsumer): def __init__(self, *args, **kwargs): super().__init__(args, kwargs) self.room_group_name = None async def connect(self): self.room_group_name = "que" await self.channel_layer.group_add(self.room_group_name, self.channel_name) await self.accept() async def disconnect(self, close_code): await self.channel_layer.group_discard(self.room_group_name, self.channel_name) # Receive message from WebSocket async def receive(self, text_data): print(text_data) # Send message to room group await self.channel_layer.group_send( self.room_group_name, {"type": "chat_message", "message": text_data}, ) class RoomConsumer(AsyncWebsocketConsumer): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.room_group_name = None self.room_name = None async def connect(self): self.room_name = self.scope["url_route"]["kwargs"]["room_name"] self.room_group_name = "room_%s" % self.room_name # Join room group await self.channel_layer.group_add(self.room_group_name, self.channel_name) await self.accept() async def disconnect(self, close_code): # Leave room group await self.channel_layer.group_discard(self.room_group_name, self.channel_name) # Receive message from WebSocket async def receive(self, text_data): print(text_data) # Send message to room group await self.channel_layer.group_send( self.room_group_name, {"type": "chat_message", "message": text_data}, ) # Receive message from room group async def chat_message(self, event): message = event["message"] # Send message to WebSocket await self.send(text_data=json.dumps({"lot": message}))