Задать вопрос
@alexreznikoff

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

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

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

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