Игровой сокет-сервер: Обмен информацией между клиентами приложения в режиме реального времени.
- Подключённый клиент получает id и информацию о всех подключённых клиентах, а всем клиентам отправляется инициализирующая информация подключённого клиента.
- Событийная модель рассылки - клиент самостоятельно решает, что и с какой частотой отправлять на игровой сервер. При обновлении клиентской информации, игровой сервер делает рассылку накопившейся за 1 тик информации всем клиентам.
-
Подключение к клиентскому каналу:
import io from "socket.io-client"; const serverURI = "wss://localhost:8443"; const opts = { transports: ["websocket"], secure: true }; const socket = io.connect(`${serverURI}/${roomId}`, opts);
-
Получение ID и всех подключённых пользователей:
socket.once("connected", ({ clientId, clients }) => { // Клиент отправляет свои начальные данные для всех подключённых. socket.emit("connected", { /* Инициализирующая информация клиента. */ }); });
-
Подписка на обновления информации клиентов:
socket.on("update", (client) => {});
-
Отправка клиентом обновлённой информации:
socket.emit("update", {});
-
Подписка на получение задержки соединения с сервером:
socket.on("pong", () => {});
-
Подписка на получение идентификатора отключившегося клиента:
socket.on("disconnected", ({ clientId }) => {});
-
(на клиенте) Отключение клиента от сервера:
socket.disconnect();
MIT Copyright (c) 2019 - по настоящее время, Лебедев Вячеслав Викторович