Отправка сообщения об отключении на WebSocket в Django Channels
Я использую Django==3.2.5 и channels==3.0.4. В consumers.py я использую класс WebsocketConsumer. Мой метод disconnect() выполняется после отключения сокета, что означает, что метод disconnect не может отправить ответ на сокет. Я нашел похожую проблему в этой ссылке , но там используется класс AsyncWebsocketConsumer. Есть ли способ решить эту проблему, используя класс WebsocketConsumer?
У меня есть следующий код:
class MeetingStatus_Consumer(WebsocketConsumer):
def connect(self):
self.room_name = self.scope["url_route"]["kwargs"]["id"]
self.room_group_name = 'Booking_id_%s' % self.room_name
# Adding room_name and group_name to the channel
async_to_sync(self.channel_layer.group_add)(
self.room_group_name,
self.channel_name
)
self.accept() # accept the request from frontend
self.send(text_data=json.dumps({'status': "Websocket Connected"})) # send data to frontend
def disconnect(self, *args, **kwargs):
async_to_sync(self.channel_layer.group_discard)(
self.room_group_name,
self.channel_name
)
self.send(text_data=json.dumps({'status': "Websocket disconnected"}))