Django Channels Realtime chat
Django Channels
Realtime Chat
Задача: построить realtime chat, а также отправление/получение уведомлений, не относящимся к чату. Суммарно 2 функции реального времени.
Инструменты:
backend - Django
frontend - Android Mobile App
Проблема: на локалхосте код работает, сообщения доходят до клиента.
Задеплоил на Heroku, тариф бесплатный. Оказалось, что существует ограничение на connections = 20(чего не хватит и на одного пользователя на 10 минут).
После каждого запроса через ASGI создается новое подключение, для WSGI все ок. До лимита - все работает, но когда соединений 20, сообщения доходят через 2-3 раза.
Попытки решить:
1. Прописывал в коде close_old_connections, убить соединения не получилось. Те для каждого сообщения создается новое connection. Гуглил несколько дней, не нашел решения по этому вопросу.
2. Пробовал и с Daphne, и с Uvicorn - эффект одинаковый
Вопрос: возможно django-channels не подходящий вариант для поставленной задачи.
Возможно стоит отказаться от Heroku, задеплоить на другой хостинг и поднять Nginx, и все ограничения пропадут?
В офф. доке пишут что django-channels должен поддержить до 1000 подключений, но опять же, если при каждом сообщении создается новое подключение, то ничего работать не будет.
Если не через django-channels, то через что?
Хотелось бы получить платную консультацию и помощь в написании кода или написание кода специалистом полностью с учетом деплоя django на хостинг.