Содержание

Технология

Socket.IO

Socket.IO — библиотека для двусторонней связи в реальном времени между сервером и браузерами. Она работает через WebSocket, переходит на HTTP long-polling, если сеть блокирует WebSocket, и сама восстанавливает соединение. На ней я построил платформу мультиплеерных игр

Тип
Технология
Официальный сайт
socket.io
В моей работе
Проекты 1 · Инструменты 1 · Услуги 2
Опубликовано

Где я её применяю

Что такое Socket.IO и как я использую его в продуктах реального времени?

Продукты реального времени ломаются в сети, а не на демо. Socket.IO даёт мне комнаты, подтверждения доставки и переподключение из коробки, поэтому силы уходят в продукт, а не в обвязку

Основные факты

Тип
библиотека для двусторонней связи в реальном времени на основе событий ·
Транспорт
WebSocket, а HTTP long-polling как запасной вариант ·

Как я применяю Socket.IO

  • Мультиплеерные игры для одного большого экрана. В моей платформе экран и до 30 телефонов в комнате общаются с сервером на Node.js через Socket.IO. Телефоны отправляют ввод, а сервер возвращает состояние игры до 60 раз в секунду. Кейс платформы.
  • Компактные обновления. В WarLine, командной стратегии, сервер отправляет только то, что изменилось с прошлого состояния, поэтому в мобильном интернете трафик остаётся небольшим.
  • Сети, которые обрываются. Гости играют через мобильный интернет, а не в одной Wi-Fi-сети. Когда телефон ненадолго теряет связь, Socket.IO возвращает его в ту же комнату.
  • Живые интерфейсы. Тот же подход даёт обновления в реальном времени в продуктах, в том числе в AI-интерфейсах реального времени. Подробнее — AI для бизнеса.

Когда я выбираю Socket.IO и его ограничения

Я использую Socket.IO, когда продукту комнаты, события и надёжное переподключение нужнее, чем предельная скорость: в играх, живых квизах, совместной работе, уведомлениях.

Для аудио и видео или для данных, которые должны идти напрямую между двумя устройствами, лучше подходит WebRTC. А серверу, который держит состояние в памяти, нужен план на случай, когда одного процесса станет мало; его я рассчитываю под каждый проект, а не обещаю заранее число игроков.

Работает вместе с

Источники

  1. Socket.IO Documentation — Socket.IO ·

Контакты

Есть идея? Давайте воплотим её