socket.io (socketio/socket.io)
Searching Database…
Что это такое?
Socket.IO — это библиотека, которая обеспечивает двусторонний обмен данными в реальном времени с низкой задержкой между сервером на Node.js и клиентами, такими как браузеры или мобильные приложения.
Это отдельный сервер или библиотека, которую я добавляю в своё существующее приложение?
Это библиотека: вы устанавливаете пакет socket.io на сервер Node.js, а пакет socket.io-client в браузер или приложение, чтобы связать их по сети.
Как это запустить?
Вместо пошаговой инструкции по установке прямо в этом README вам предлагается официальная документация Socket.IO по настройке и использованию.
Нужен ли Node.js для серверной части?
Да, серверный пакет рассчитан на работу в Node.js, а сам проект написан на TypeScript.
Какой транспорт на самом деле обеспечивает соединение под капотом?
Из CI-конфигураций репозитория видно, что он построен на отдельных подпроектах «engine.io», «engine.io-client» и «engine.io-parser», которые отвечают за базовый транспорт (WebSocket с запасными вариантами) под API Socket.IO.
Может ли это масштабироваться на несколько серверных экземпляров?
Да, в кодовой базе есть отдельный компонент «socket.io-adapter» (его видно в CI-конфигурации), который рассылает события клиентам, подключённым к разным серверным процессам при горизонтальном масштабировании.
Зачем использовать Socket.IO вместо обычного WebSocket-соединения?
Socket.IO добавляет поверх обычных WebSocket автоматическое переподключение, запасные транспорты и API, основанный на событиях. Этих возможностей простое WebSocket-соединение из коробки не даёт.
Что такое engine.io?
Engine.io — это транспортный модуль более низкого уровня, на котором построен Socket.IO. Из CI-конфигураций репозитория видно, что engine.io, engine.io-client и engine.io-parser поддерживаются как отдельные подпроекты.
Где задавать вопросы по использованию, а не создавать issue?
Issues на GitHub предназначены для ошибок и запросов новых функций. По вопросам использования сопровождающие советуют обращаться к документации, руководству по устранению неполадок, Stack Overflow или GitHub Discussions.
Поддерживается ли рассылка клиентам, подключённым к нескольким серверам?
Да, через пакет socket.io-adapter, который рассылает события сокетам, подключённым к разным серверным экземплярам, например при горизонтальном масштабировании.
What are similar projects?
socket.io-client, centrifugo, pomelo, tornado, websocket, feathers, sails, chat
Which topics is it in?
socket-io, websockets, realtime, scalability, messaging, chat, node, websocket, http, browser, backend, networking