Сокеты на примере игр

Вы задумывались, что когда вы играете в Доту, Кс или Apex, то вы видите у себя на компьютере то же, что и другие игроки в режиме реального времени? Расположение на карте, когда кто-то стреляет или использует способности - все эти данные синхронизированы между всеми игроками одновременно.

Сокеты на примере игр
23

Могу дополнить примером работы с сокетами.

Первоначально, надо приконнектиться, это выглядит так:

socket.Connect("192.168.0.1");

После чего, есть две основных элемента:

1. Передача данных сокет-серверу, как правило это называет словом "emit", с названиям метода/ивента и его параметрами.

socket.Emit("PlayerConnect", playerId);

И тогда эта информация передается с клиента на сервер (и её могут получить все клиенты, которые работают с этим сокетом).

2. Получение данных от сервера, путем подписывания на события, обычно ключевое слово "subscribe", с названием ивента/события и что должно произойти(как правило, это ссылка на функцию/метод).

socket.Subscribe("HealthChanged", UpdateHealthUI);

Как-то так.

4
Ответить

Да, а еще со стороны сервера есть различные способы взаимодействия с соединениями/топиками/каналами/событиями

Можно либо всем слать сообщение, иначе назаывается броадкастить (broadcast), например глобальное событие: "Появился новый босс в подземелье Х, игроки попытайте свою удачу"

А есть возможность точечно игроку (конкретному подписчику события), например игрок запросил уникальную и приватную информацию, и только он получит ее от сервера)

4
Ответить

А еще соединение может обвалиться и придется переподключаться. Например, можем повесить коннект при срабатывании socket.close

1
Ответить