Перемещение Socket.io или базовых веб-сокетов между процессами node.js - PullRequest
0 голосов
/ 13 января 2019

Я хочу работать над многопользовательской HTML5-игрой и записать сервер в узел. Чтобы помочь с обработкой на стороне сервера, я хочу создать процессы для управления отдельными игровыми экземплярами. Проблема, для которой я не смог найти стратегию, заключается в том, как перемещать сокеты между процессами. После некоторых исследований кажется, что веб-сокеты не могут быть переданы процессу так, как это делают TCP или UDP-сокеты из-за того, как платформа обрабатывает их.

Что было бы хорошей стратегией для этого? Я открыт для использования Socket.io или какой-либо базовой библиотеки веб-сокетов (откаты Socket.io не требуются, поскольку графические требования на стороне клиента исключают несовместимые с ws браузеры). Большая часть документации по масштабированию веб-сокетов, похоже, предполагает больше традиционного кластера процессов сервера веб-сайта с балансировкой нагрузки. В этом случае Socket.io, кажется, имеет решения, так как балансировщик нагрузки может просто подключить пользователя к одному из процессов в кластере и оставить его там. Но сценарий необходимости перемещать одного подключенного клиента между процессами не кажется легко выполнимым, если я что-то упустил.

Я рассматривал возможность запуска отдельных игровых экземпляров в процессах, но оставляю все сокеты подключенными к их исходному процессу и использую брокер сообщений для передачи данных между игровыми процессами и процессом связи. Это хорошая стратегия? Есть ли лучший? Спасибо за ваше время!

...