работают вебсокеты, использую signal r.
Если ПК уходит в спящий режим, то сокеты судя по всему отключаются.
У меня есть несколько идей:
1) Когда пользователь залогинился: переподключаться и запрашивать историю чата с сервера. (Тут непонятно как отследить это событие в браузере)
2) Как-то запретить отключение от сервера при входе в спящий режим.
Кто нибудь с таким сталкивался?
Если сокет внезапно сдох - значит пора синхронизироваться. А было это отключение из-за сна или из-за плохого интернета - уже даже и не важно. Делать вейклок просто потому что вам как разработчику лень делать синхронизацию при разрыве связи (а ведь разрыв необязательно из-за сна может быть) - вас пользователи проклянут за такое. Особенно если оно ещё и для мобилок.
При разрывах сигнал р сам пытается восстановить соединение
Но это же не значит, что вам ничего делать не надо. Может, пока он это делал, вы упустили пару событий? А может авто восстановление не случилось, потому что интернет полагал очень сильно?
Так какой выход? Писать свою проверку поверх той что уже есть у сигнлар р? Подключиться вручную, если не смогла сама библиотека все равно не выйдет
Да, писать своё. У вас нет абсолютно никакой власти над режимом сна, особенно из-под браузера. Максимум можете задержать через Wakelock api, но это только актуально для мобилок с хромом, и ОС или браузер всегда может наплевать на это, если посчитает, что вы обнаглели.
Я уже выстрелил себе в ногу однажды с сигнал р, локально сокеты работали, а на проде их оказывается не было и использовались sse, которые конкурируют даже с обычными запросами со страницы. Их всего штук пять на один домен, в итоге из-за них сайт на клиенте ложился, исперпывая лимит О wakelock даже не слышал, думаю нет такой необходимости удерживать соединения открытыми
Обсуждают сегодня