Как мы видим сервер ответил не кодом 200 (успешное завершение запроса), а 101 — переключение протоколов. Это происходит потому, что мы отправили HTTP запрос, а хотим получить не только HTTP-ответ, а ещё и другие ответы по WS, сервер как бы предупреждает клиент, что будет присылать ответы множество раз🔙
мне понравилось наличие смайликов в посте
Разве вебсокет - этот не просто открытый канал без каких-либо пинг-понгов?
Ситуация: у вас обрубился интернет, а вы общались с кем-то в чате. Как серверу узнать, что вам не нужно присылать WS-пакеты?😊
WS - действительно открытый канал, но как серверу и клиенту узнать, что он внезапно не закрылся? Именно для этого пинг-понг и нужен
Легенькую реализацию можно подсмотреть здесь😉
https://github.com/websockets/ws#how-to-detect-and-close-broken-connections
Вообще недурно отслеживать событие дисконнекта, и через тайм-аут попробовать приконнектиться заново.
Заодно - забрать get запросом данные за время когда был обрыв связи.
Опишу эволюцию веба чуть другими словами, вдруг кому полезно будет.
Во времена супер медленного (по текущим меркам) интернета — страницы грузились целиком.
AJAX — пришёл с развитием JavaScript, лет 15 назад(а может уже и больше), когда появилась идея и возможность обновлять не всю страницу, а только её часть, для экономии трафика. Это все те же запросы по HTTP, через JavaScript. Браузер стучал на сервер, получал какие-то данные и подставлял в нужное место страницы. Формат данных был определен достаточный: текст, XML, JSON. Как видим спустя десяток лет — JSON прижился лучше.
WebSocket — пришёл для решения более сложных задач, когда не только клиент(браузер, например) хочет постучаться на сервер за новыми данными, но и когда сервер может постучаться в браузер и сообщить клиенту о какой-то новой информации: чаты, интерактивные графики, получение новой почты итд.
Разберите сниффинг запросов на вебсокете winline в образовательных целях))
Вам на хабр или медиум, вы сайтом ошиблись