Определение текущего статуса пользователя (online/offline) в видеотрансляционной системе

Используйте heartbeat и срок действия присутствия, а не единственный флаг online. Пользователь online, пока хотя бы одно его соединение или устройство имеет актуальный heartbeat.

Короткий ответ

Что ответить на собеседовании

Используйте heartbeat и срок действия присутствия, а не единственный флаг online. Пользователь online, пока хотя бы одно его соединение или устройство имеет актуальный heartbeat.

Подробный разбор

Ответ с пояснениями

Условие

В системе видеотрансляций лектора проводят занятия, а слушатели подключаются к их докладам. Требуется разработать быстрый и надёжный механизм, позволяющий определить, находится ли конкретный пользователь в сети (online) или нет (offline).

Ответ

Используйте heartbeat и срок действия присутствия, а не единственный флаг online. Пользователь online, пока хотя бы одно его соединение или устройство имеет актуальный heartbeat.

На connect зарегистрируйте connection_id, периодически обновляйте expires_at, на штатный disconnect удаляйте запись. При аварийном обрыве статус пропадёт по TTL. Для нескольких серверов нужен общий быстрый storage; запись по пользователю должна учитывать несколько вкладок и устройств. Интервал heartbeat и TTL задают компромисс между нагрузкой и задержкой определения offline. Абсолютно мгновенное распознавание сетевого обрыва невозможно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее