Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

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 на хостинг.

4 года назад
guest_15876677853127
4 года в сервисе
Был
3 года назад