Переосмыслить реконнект вебсокетаapollo-cms
{"blocks": [{"key": "f45gm", "data": {}, "text": "Задача: чтобы при реконнекте (в момент смены пользователя или входа/выхода пользователя) подписки, которые должны идти для авторизованных пользователей:", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "8el3", "data": {}, "text": "1. при выходе пользователя завершались и не переподписывались, ", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": [{"style": "BOLD", "length": 23, "offset": 3}]}, {"key": "3an7o", "data": {}, "text": "2. при входе пользователя подписывались.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": [{"style": "BOLD", "length": 23, "offset": 3}, {"style": "BOLD", "length": 1, "offset": 39}]}, {"key": "4tt5a", "data": {}, "text": "", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}, {"key": "2am81", "data": {}, "text": "Сейчас сложно избежать ситуаций с задвоением подписок. По большому счету в момент реконнекта подписки автоматически перезапускаются и идут с новыми заголовками. Сейчас проблема решается просто: на сервере выполняется проверка пользователя, и если пользователь неавторизован, то просто подставляется такое условие, по которому никогда не будет возвращена ни одна запись. Но здесь проблема в том, что может висеть много активных соединений для пользователей, которым никогда не будет данных. По этой причине было бы эффективней все-таки решить вопрос фильтрации подписок для авторизованных пользователей и неавторизованных. Но возможно с учетом того, что скорее всего число таких подписок не превысит 10% от общего числа, может проблема и не такая большая, а придется ее решать в рамках общей проблемы улучшения отказоустойчивости.", "type": "unstyled", "depth": 0, "entityRanges": [], "inlineStyleRanges": []}], "entityMap": {}}