Задача: Создать систему обмена сообщениями между пользователями с отображением статуса "онлайн", непрочитанных сообщений, а также настроить уведомления по email, push (браузер) и Telegram.
Решение: Использовал Django Channels + Redis для WebSocket-соединений. Реализовал механизм heartbeat для отслеживания онлайн-статуса. Настроил каналы для диалогов, сообщений, прочтений. Встроил Web Push через pywebpush (VAPID) для браузерных уведомлений. Подключил Telegram Bot API для отправки уведомлений о новых сообщениях, статусе заказа и др. Настроил Celery-задачи для асинхронной отправки email и push.
Результат: Пользователи получают уведомления мгновенно, даже если сайт закрыт. Чат работает в реальном времени без задержек. Это повысило вовлечённость и скорость ответов продавцов.
Технологии: Django, Django Channels, Redis, Celery, Web Push API, Telegram Bot API, SMTP
https://pro.avada.shop