Я создаю веб-игру, которая соединяется через веб-сокеты.
Достаточно легко создать систему обмена сообщениями, которая обрабатывает вызовы в веб-сокете.Задача - ответ на звонок.«Запросить World Chunk 0,0» достаточно просто.Что мне нужно, так это способ различать возвращаемые сообщения.Я отправляю запрос данных на сервер, следующее сообщение, которое я получаю через веб-сокет, может быть любым: действие игрока, изменение счета, данные синхронизации физики и т. Д.
Лучшее решение, которое я могу найтигенерировать UUID для вызова, иметь, чтобы этот UUID был частью возвращаемых данных, а затем запустить обратный вызов (или обещание) для этого UUID.(т.е.: {request:'Get 0,0',id:'1234'}
{response:DATA,id:'1234'}
).Затем мне нужно отследить все эти обещания на стороне запрашивающей стороны и управлять какой-то системой тайм-аута.
Я пытаюсь найти лучший шаблон проектирования для этого: способ асинхронного обратного вызова через одну строкукоммуникации.Есть ли лучший дизайн для этого, чем система идентификации обратного вызова?Существует ли пакет Browser / Nodejs, который легко это обрабатывает?
примечание: я упоминаю здесь о веб-сокетах, но я также ожидаю аналогичную проблему / решение для элементов веб-работника: "создать физический объект", но следующее сообщение отфизический поток может быть сообщением о столкновении или обновлении рендерера.