Files
tripwithbonus/ChatServiceApp/websocket_views.py
SDE 78ade08e65 0.3.0
chat v3
2023-08-11 23:25:28 +03:00

38 lines
1010 B
Python

import json
from channels.generic.websocket import WebsocketConsumer
from asgiref.sync import async_to_sync
class ChatConsumer(WebsocketConsumer):
def connect(self):
self.room_group_name = 'test'
async_to_sync(self.channel_layer.group_add)(
self.room_group_name,
self.channel_name
)
self.accept()
def receive(self, text_data):
text_data_json = json.loads(text_data)
message = text_data_json['message']
sender = text_data_json['sender']
async_to_sync(self.channel_layer.group_send)(
self.room_group_name,
{
'type': 'chat_message',
'message': message,
'sender': sender
}
)
def chat_message(self, event):
message = event['message']
sender = event['sender']
self.send(text_data=json.dumps({
'type': 'chat',
'message': message,
'sender': sender
}))