Socketio необходимо использовать в узле; Socketio — это библиотека nodejs. Она использует функции nodejs для инкапсуляции некоторых функций и использует некоторые API-интерфейсы nodejs, поэтому ее можно использовать только в nodejs. Socketio также устанавливается между клиентом и сервером. Технология обмена коммуникационными данными с использованием EngineIO на нижнем уровне.
Операционная среда в этой статье: система Windows 10, nodejs версии 16, компьютер Dell G3.
Socketio — это библиотека nodejs. Она эквивалентна другим функциям nodejs для инкапсуляции некоторых функций, которые вы можете использовать. Это зависит от некоторых API-интерфейсов nodejs, поэтому ее можно использовать только в nodejs.
SocketIO — это технология двустороннего обмена данными, установленная между клиентом и сервером с использованием EngineIO внизу. Клиент SocketIO использует Engine.IO-Client, а сервер — Engine.IO.
Расширить знания
Как работает SocketIO
Когда браузер пытается установить SocketIO, SocketIO сначала использует xhr-опрос для создания длинного опроса. После установки длительного опроса он будет обновлен до соединения WebSocket.
Нижний уровень SocketIO реализован с помощью библиотеки EngineIO, которая инкапсулирует собственный протокол Socket (временно называемый EIO Socket) с помощью WebSocket и XMLHttprequest. Полный сокет EIO включает в себя несколько соединений XHR и WebSocket.
клиент
Сокеты EIO передают подтверждение XHR (XMLHttprequest). Интерфейсная часть отправляет XHR, чтобы сообщить серверу, что я хочу начать длинный опрос XHR. Данные, возвращаемые серверной частью, включают флаг открытия (обозначенный цифрой 0), а также поля sid и обновлений, интервал пинга и тайм-аут пинга.
0 {"sid": "8b7ab1ae-fbcf-4d23-8192-3c14a2a90721", "upgrades": ["websocket"], "pingInterval": 10000, "pingTimeout": 60000}sid — это идентификатор сеанса этого сокета EIO. Поскольку один сокет EIO содержит несколько запросов, а серверная часть будет подключаться к нескольким сокетам EIO одновременно, sid эквивалентен идентификатору SESSION.
Другое поле обновления, обычно ['websocket'], указывает, что метод подключения можно обновить с длинного опроса до WebSocket.
Внешний интерфейс запускает длинный опрос XHR при отправке первого XHR. Если в это время возникает необходимость отправлять и получать данные, это реализуется посредством длинного опроса. Так называемый длинный опрос означает, что внешний интерфейс отправляет запрос, а сервер ждет, пока не появятся данные, прежде чем ответить. Внешний интерфейс немедленно отправляет следующий запрос после получения ответа. Это обеспечивает двустороннюю связь.
После того как внешний интерфейс получит обновления подтверждения, EIO определит, поддерживает ли браузер WebSocket. Если да, он инициирует соединение WebSocket, а затем через него отправит на сервер часть данных с содержимым проверки и типом проверки связи. Вебсокет. Если в это время сервер возвращает данные с содержимым зонда и типом понга, интерфейсная часть прекратит установленный ранее длинный опрос HTTP и будет использовать только канал WebSocket для отправки и получения данных.
В течение жизненного цикла сокета EIO он время от времени будет проверять работоспособность сети.
Это структура кадра WebSocket: зеленый — передача, белый — прием. Предыдущее число — это тип пакета данных, 2 — пинг, 3 — понг, 42 — сообщение.
Рекомендуемое обучение: «видеоурок по nodejs»
Выше приведены сведения о том, следует ли использовать Socketio в узле. Для получения дополнительной информации обратите внимание на другие соответствующие статьи на этом сайте!