@alexreznikoff

Как проверить не отключился ли клиент от Django websocket?

Стоит задача:
Клиент устанавливает Websocket с Django. Использую django 2.0 и channels 2.1.1 . В channels запускается задача, которая может занять очень длительное время - отправляются запросы на разные серверы и при получении ответов происходит отсылка обработанной информации в сокет клиенту. Если клиент закрыл страницу или отвалился интернет, сервер этого никак не определяет, а продолжает выполнение, как будто сокет живой. Каким образом организовать опрос клиента (отсылка heartbeat), живой он или отвалился, и в случае, если отвалился, закрывать сокет и прекращать выполнение скрипта?
  • Вопрос задан
  • 357 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Достаточно определить в обработчике соответствующий метод:
class MyConsumer(AsyncWebsocketConsumer):
    async def disconnect(self, close_code):
        # соединение закрылось
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы