Socket.IO
Подробнее
- Тип
- Библиотека для связи в реальном времени
- Год
- 2010
- Создатель
- Гильермо Раух
- Лицензия
- MIT
События в реальном времени между браузером и Node — это не WebSocket, а собственный протокол, который использует WebSocket, когда может.
Гильермо Раух выпустил библиотеку в 2010 году, когда поддержка WebSocket в браузерах была новой, неровной и регулярно ломалась корпоративными прокси. Ответом стал слой абстракции: библиотека согласует лучший доступный транспорт и при необходимости откатывается на HTTP long polling, с автоматическим переподключением и буферизацией сообщений на время обрыва.
Поверх этого — удобства, которых нет в чистом WebSocket: именованные события, комнаты, пространства имён и колбэки подтверждения. Цена — это отдельный протокол: сервер Socket.IO не может общаться с обычным WebSocket-клиентом, а мажорные версии не раз ломали совместимость на уровне протокола. Поддержка в браузерах давно повсеместная, так что выбирать приходится по возможностям, а не из-за отката.