public GameSessionService( ISceneHost scene, IUserSessions sessions, IConfiguration configuration, IEnvironment environment, IDelegatedTransports pools, ManagementClientAccessor management, ILogger logger, Func <IEnumerable <IGameSessionEventHandler> > eventHandlers) { _management = management; _scene = scene; _sessions = sessions; _configuration = configuration; _logger = logger; _environment = environment; _pools = pools; _eventHandlers = eventHandlers; scene.Shuttingdown.Add(args => { CloseGameServerProcess(); return(Task.FromResult(true)); }); scene.Connecting.Add(this.PeerConnecting); scene.Connected.Add(this.PeerConnected); scene.Disconnected.Add((args) => this.PeerDisconnecting(args.Peer)); scene.AddRoute("player.ready", ReceivedReady, _ => _); scene.AddRoute("player.faulted", ReceivedFaulted, _ => _); }
public GameSessionService( ISceneHost scene, IConfiguration configuration, IEnvironment environment, IDelegatedTransports pools, ManagementClientAccessor management, ILogger logger, IAnalyticsService analytics) { _analytics = analytics; _management = management; _scene = scene; _configuration = configuration; _logger = logger; _environment = environment; _pools = pools; _configuration.SettingsChanged += OnSettingsChange; OnSettingsChange(_configuration, _configuration.Settings); scene.Shuttingdown.Add(args => { _sceneCts.Cancel(); return(Task.CompletedTask); }); scene.Connecting.Add(this.PeerConnecting); scene.Connected.Add(this.PeerConnected); scene.Disconnected.Add((args) => this.PeerDisconnecting(args.Peer)); scene.AddRoute("player.ready", ReceivedReady, _ => _); scene.AddRoute("player.faulted", ReceivedFaulted, _ => _); }
public LocalServer( IEnvironment env, IDelegatedTransports pools, ILogger logger) { _logger = logger; _environment = env; this.pools = pools; }
public GameSessionService( ISceneHost scene, IUserSessions sessions, IConfiguration configuration, IEnvironment environment, IDelegatedTransports pools, ILogger logger, Func <IEnumerable <IGameSessionEventHandler> > eventHandlers) { _scene = scene; _sessions = sessions; _configuration = configuration; _logger = logger; _environment = environment; _pools = pools; _eventHandlers = eventHandlers; scene.Shuttingdown.Add(args => { _logger.Log(LogLevel.Trace, "gameserver", $"Shutting down gamesession scene {_scene.Id}.", new { _scene.Id, Port = _port }); try { if (_gameServerProcess != null && !_gameServerProcess.HasExited) { _gameServerProcess.Close(); _gameServerProcess = null; } } catch { } finally { _portLease?.Dispose(); } _logger.Log(LogLevel.Trace, "gameserver", $"gamesession scene {_scene.Id} shut down.", new { _scene.Id, Port = _port }); return(Task.FromResult(true)); }); scene.Connecting.Add(this.PeerConnecting); scene.Connected.Add(this.PeerConnected); scene.Disconnected.Add((args) => this.PeerDisconnecting(args.Peer)); scene.AddRoute("player.ready", ReceivedReady, _ => _); scene.AddRoute("player.faulted", ReceivedFaulted, _ => _); }