Переосмыслить реконнект вебсокета
Новая
Проект: apollo-cms
Планируемый запуск: | Дата начала: | Планируемое завершение: | Дата завершения: |
Описание задачи
Задача: чтобы при реконнекте (в момент смены пользователя или входа/выхода пользователя) подписки, которые должны идти для авторизованных пользователей:
1. при выходе пользователя завершались и не переподписывались,
2. при входе пользователя подписывались.
Сейчас сложно избежать ситуаций с задвоением подписок. По большому счету в момент реконнекта подписки автоматически перезапускаются и идут с новыми заголовками. Сейчас проблема решается просто: на сервере выполняется проверка пользователя, и если пользователь неавторизован, то просто подставляется такое условие, по которому никогда не будет возвращена ни одна запись. Но здесь проблема в том, что может висеть много активных соединений для пользователей, которым никогда не будет данных. По этой причине было бы эффективней все-таки решить вопрос фильтрации подписок для авторизованных пользователей и неавторизованных. Но возможно с учетом того, что скорее всего число таких подписок не превысит 10% от общего числа, может проблема и не такая большая, а придется ее решать в рамках общей проблемы улучшения отказоустойчивости.