import json from channels.generic.websocket import WebsocketConsumer from asgiref.sync import async_to_sync # from .funcs import * class ChatConsumer(WebsocketConsumer): def connect(self): print('ws connect') self.room_group_name = 'test' async_to_sync(self.channel_layer.group_add)( self.room_group_name, self.channel_name ) print(f'self.room_group_name = {self.room_group_name}') print(f'self.channel_name = {self.channel_name}') self.accept() def receive(self, text_data): print(f'ws receive text_data = {text_data}') from .funcs import send_msg resDict = send_msg(text_data) # resDict.update({ # 'type': 'chat_message', # # }) print(f'send_msg res = {resDict}') self.send(json.dumps(resDict)) # async_to_sync(self.channel_layer.group_send)( # self.room_group_name, # resDict # # { # # 'type': 'chat_message', # # 'message': message, # # 'sender': sender # # } # ) def chat_message(self, event): print('ws chat_message') message = event['message'] sender = event['sender'] self.send(text_data=json.dumps({ 'type': 'chat', 'message': message, 'sender': sender }))