Теоретически возможно, чтобы веб-сокеты всегда были открыты и возобновлять их по запросу?
IE
- Проверка подлинности приложения с использованием Oauth
- Обновление сервера до веб-сокета
- Выполнить некоторую связь
- Пауза (сведения о соединении хранятся в БД)
- Позже на сервере просыпается задание cron
- Считывание сведений о соединении, хранящихся в БД
- Отправка некоторых данных в приложение
Приложение никогда не закрывало веб-сокет, а сервер закрывал, но сохранял текущее «состояние» веб-сокета, чтобы его можно было возобновить позже.А точнее, сервер просто не закрывает веб-сокет, он просто «отбрасывает свой статус из оперативной памяти», но хранит достаточно данных в хранилище, чтобы позже возобновить состояние соединения.
Если в то время какесли приложение запрашивает связь, серверу предоставляется возможность восстановить данные из БД перед ответом (это может привести к некоторой приемлемой задержке, реальное время не является обязательным, просто двунаправленность в любое время)