Spaces:
Running
Running
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'] | |