Создание комнат в Node JS для многопользовательских игр с использованием Deepstream

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


person pasha30    schedule 30.01.2017    source источник


Ответы (1)


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

person John Diamond    schedule 31.01.2017