public NodeManager(IConnectionMultiplexer redisConnection, ILogger <NodeManager> logger, IOptions <GametekiLobbyOptions> options, IGameNodeService gameNodeService)
        {
            this.logger          = logger;
            this.gameNodeService = gameNodeService;
            this.options         = options.Value;

            subscriber = redisConnection.GetSubscriber();
        }
 public ThronetekiHub(
     IThronetekiLobbyService lobbyService,
     IConnectionMultiplexer redisConnection,
     IGameNodeService gameNodeService,
     IOptions <AuthTokenOptions> tokenOptions,
     IHttpClient httpClient,
     IOptions <GametekiLobbyOptions> options)
     : base(lobbyService, redisConnection, gameNodeService, tokenOptions)
 {
     this.httpClient        = httpClient;
     this.options           = options.Value;
     thronetekiLobbyService = lobbyService;
 }
        public LobbyHub(ILobbyService lobbyService, IConnectionMultiplexer redisConnection, IGameNodeService gameNodeService, IOptions <AuthTokenOptions> tokenOptions)
        {
            this.lobbyService    = lobbyService;
            this.gameNodeService = gameNodeService;

            this.tokenOptions = tokenOptions.Value;

            var subscriber = redisConnection.GetSubscriber();

            database = redisConnection.GetDatabase();

            if (setupDone)
            {
                return;
            }

            subscriber.Subscribe(RedisChannels.LobbyMessage).OnMessage(OnLobbyMessageAsync);
            subscriber.Subscribe(RedisChannels.LobbyMessageRemoved).OnMessage(OnLobbyMessageRemovedAsync);
            subscriber.Subscribe("RemoveRunningGame").OnMessage(OnRemoveGameAsync);

            setupDone = true;
        }