BloodyInside's picture
new
cdc95a6
import json
from datetime import datetime
from channels.generic.websocket import WebsocketConsumer
from channels.layers import get_channel_layer
from asgiref.sync import async_to_sync
from backend.models.model_cache import SocketRequestChapterQueueCache
from django.dispatch import receiver
class RequestChapter(WebsocketConsumer):
channel_session_user = True
def __init__(self):
super().__init__()
self.room_id = self.__class__.__name__
def connect(self):
user_socket_id = self.scope['url_route']['kwargs']['socket_id']
async_to_sync(self.channel_layer.group_add)(
self.room_id,
self.channel_name,
)
SocketRequestChapterQueueCache.objects.filter(socket_id=user_socket_id).update(channel_name = self.channel_name)
self.accept()
self.send(text_data=json.dumps({
'type': "socket_info",
'channel_name': self.channel_name,
}))
def event_send(self, event):
message = event['data']
self.send(text_data=json.dumps({
'type': 'event_send',
'event': message
}))
def disconnect(self, close_code):
user_socket_id = self.scope['url_route']['kwargs']['socket_id']