В последние годы наблюдается заметное ускорение «Интернета в реальном времени». Веб-приложения реального времени, которые мы используем ежедневно (например, Gmail, Slack и Twitch), зависят от функций реального времени. Эти функции позволяют пользователю получать новые сообщения, электронные письма, видео и многое другое в верхней части своих каналов без необходимости обновлять страницу.

Разрешение пользователю получать новые сообщения, электронные письма, видео и многое другое в верхней части своих каналов без необходимости обновлять страницу.

Зависимость от рендеринга данных в реальном времени представляет собой серьезное отличие от строгого шаблона запросов и ответов протокола передачи гипертекста (HTTP) для Всемирной паутины. В сети реального времени пользователи предполагают получать новую информацию с сервера, как только она становится доступной, когда бы она ни создавалась — никаких запросов не требуется.

Веб-сокеты — одна из тех технологий, которые делают реальное взаимодействие правдоподобным.

"WebSockets" – это передовая технология, обеспечивающая интерактивную связь в режиме реального времени между браузером клиента и сервером. Он использует совершенно другой протокол, обеспечивающий двунаправленный поток данных, что делает его уникальным по сравнению с HTTP.

Как работает традиционный HTTP?

вам постоянно спрашивать сервер, есть ли новые сообщения, чтобы получать их.

Если вы разработчик, вы, вероятно, знаете, что такое HTTP(или HTTPS). Это видно каждый день, в вашем браузере. Для ответа нужен запрос; постоянно спрашивать сервер о наличии новых сообщений, чтобы получать их.

Вы также должны знать, что HTTP позволяет вам иметь различные типы запросов, такие как post, get или put, каждый из которых имеет свою цель.

Чем WebSocket отличается от обычного HTTP?

Вы можете просто слушать сервер, и он отправит вам сообщение, когда он будет доступен.

Веб-сокеты, с другой стороны, не требуют, чтобы вы отправляли запрос, чтобы ответить. Они обеспечивают двунаправленный поток данных, поэтому вам просто нужно прослушивать любые данные. Вы можете просто слушать сервер, и он отправит вам сообщение, когда он будет доступен.

Веб-сокеты позволяют установить длительное соединение с одним сокетом TCP (протокол управления передачей) между клиентом и сервером, что позволяет мгновенно распространять двунаправленные полнодуплексные сообщения. Это делается с минимальными накладными расходами, что приводит к низкой задержке соединения.

Чтобы получить их правильно, давайте рассмотрим приведенную ниже модель:

Запрос на соединение WebSocket отправляется на сервер от клиента (или нескольких клиентов) посредством процесса, называемого рукопожатие WebSocket, который начинается с того, что клиент отправляет серверу обычный HTTP-запрос. Часть этого запроса включает заголовок Upgrade, который указывает серверу, что клиент пытается установить соединение WebSocket. Этот запрос называется рукопожатием WebSocket.

Если сервер принимает рукопожатие и поддерживает протокол, первоначальное HTTP-соединение заменяется соединением WebSocket с использованием того же протокола TCP/IP. И это соединение поддерживается для каждого клиента, что позволяет в режиме реального времени передавать данные обратно клиенту с сервера по запросу. Поскольку это соединение между сервером и клиентом остается открытым, оно устраняет необходимость в постоянном опросе (т. е. проверке), чтобы увидеть, была ли сохранена новая информация на бэкэнде. Таким образом, устраняется необходимость в постоянных запросах на выборку к внутреннему серверу.

возможность открывать двунаправленные соединения позволяет создавать веб-приложения нового поколения, работающие в реальном времени!

Реальные приложения для WebSockets бесконечны, включая приложения для чата, Интернет вещей, многопользовательские онлайн-игры и действительно любое приложение в реальном времени.

Вывод

Веб-сокеты в настоящее время являются одной из «следующих крупных веб-технологий», принятых многими разработчиками. Отлично подходит для взаимодействия в реальном времени, включая онлайн-игры. Они настолько полезны, что вы можете быть удивлены тем, что не слышали об этом раньше, но знаете ли вы, что такие библиотеки, как Firebase, уже используют веб-сокеты?

Я надеюсь, что статья помогла вам понять протокол Web Socket, и если она вам понравилась, почему бы вам не нажать кнопку 💙 и не подписаться на меня на Medium? Это ОЧЕНЬ мотивирует.