52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
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
|
|
})) |