ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Как реализовать архитектуру пассивного месенджера?

Месенджер нужно делать на вебсокетах, это понятно. Можно кидать кто когда начали писать, отправлено / доставлено и прочие приятности риалтайма

Для экономии оперативной памяти было решено при выходе из диалога закрывать вебсокетное соединение и переходить на пуши. НО пуши на клиентском устройстве можно запретить (как на мобилках, так и вебверсии)

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

1) Если на клиенте запретили пуши - запретили ли те, которые не визуальные? т е пуши то нужны не те, что на выключенный телефон приходят, а те что при открытом приложении будут (вдруг это разные вещи и я зря костыли ищу)
2) Как вариант был лонгпул, но переживаю за ресурсы
3) запрос на сервер каждые N сек - ужасный вариант
  • Вопрос задан
  • 186 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега Веб-разработка
{PHP, MySql, HTML, JS, CSS} developer
читайте о лонг поллинг запросах, например тут и здесь, причем я бы больше на комменты в первой статье смотрел.
Ответ написан
Комментировать
по-моему, вы зря от лонгполла отказались, при правильной организации бэкенда, открытый лонгполл ресурсы сервера практически не ест.
тут ключевой вопрос в том, кто у вас на беке на запросы отвечает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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