• Что значит этот код?

    @Konf
    Редактирую ответы на 2 + 2 по 4 раза
    tl;dr Распределяет события клиент <--> сервер

    Класс создаёт websocket сервер по адресу
    process.env.REGISTRY_SERVER || 'ws://localhost:9977'
    и обрабатывает все входящие сообщения следующим образом: JSON.parse(message) --> const { event, payload } = message, что значит что входящие сообщения (от клиента) должны иметь формат { event: "someEventName", payload: { ... } }. Потом это сообщение уже в виде объекта идёт в какой-то обработчик событий, который, скорее всего, распределяет этот объект по функциям-подписчикам (listeners), объявленным в других файлах. Эти функции там что-то делают с этими сообщениями, и вызывают callback sendEvent с какими-то новыми event и payload.

    То есть, если это игра, то от клиента может прийти что-то такое:
    { event: "userInput", payload: { type: "keyPress", value: "f3" } }
    Затем это через router будет передано в какую-то функцию, которая, например, выяснит что персонаж сейчас стоит на клетке, которая при нажатии ф3 должна телепортировать игрока. Ещё какая-нибудь функция сделает это, и, в конце концов, будет вызван callback sendEvent, который отправит на клиент игрока сообщение
    { event: "characterMove", payload: { x: 123, y: 532 } }
    Ответ написан
    1 комментарий