2017-01-30 2 views
0

Мы создаем игровой сервер для игр в казино через DeepStream, мы пишем его в Node JS. Я использую DeepStream List, чтобы сделать комнаты с минимальным и максимальным лимитом клиентов (количество списков). В комнате может быть максимум 5 клиентов. Так что, если бы я сказал, что у нас есть 10000 номеров, а затем новый пользователь подключается, то как я могу проверить бесплатную комнату или список DS, которые бесплатны для нового соединения быстро, в основном мне нужно искать, в каком списке есть бесплатные пробел или количество списков меньше 5. Самый быстрый способ сделать этоСоздание номеров в Node JS для многопользовательских игр с использованием Deepstream

ответ

2

Если вы используете соединитель базы данных глубокого потока, вы можете написать запрос, который получает неполные комнаты из базы данных и предоставляет их как список глубоких потоков. С помощью базы данных реального времени, такой как ReThinkDB, для обновления списка в реальном времени могут использоваться изменения-каналы, в противном случае вам нужно будет опросить базу данных с запросами.
Однако это оставляет проблему одновременного подключения пользователей к комнате. Возможно, это может быть связано с правилами клапана, see here. Более традиционный подход, позволяющий избежать этой проблемы, заключается в использовании центрального RPC provider для обработки запросов на подключение к комнате, принимая только в том случае, если доступно пространство. Если вы не используете базу данных, вы, вероятно, захотите установить поставщика, который отвечает за ведение списка комнат с пробелами, а также отвечает за обработку запросов RPC для присоединения.

Смежные вопросы