/// <summary> /// Initializes a new instance of the <see cref="GameServerContainer" /> class. /// </summary> /// <param name="loggerFactory">The logger factory.</param> /// <param name="servers">The servers.</param> /// <param name="gameServers">The game servers.</param> /// <param name="persistenceContextProvider">The persistence context provider.</param> /// <param name="connectServerContainer">The connect server container.</param> /// <param name="guildServer">The guild server.</param> /// <param name="loginServer">The login server.</param> /// <param name="friendServer">The friend server.</param> /// <param name="ipResolver">The ip resolver.</param> /// <param name="plugInManager">The plug in manager.</param> public GameServerContainer( ILoggerFactory loggerFactory, IList <IManageableServer> servers, IDictionary <int, IGameServer> gameServers, IPersistenceContextProvider persistenceContextProvider, ConnectServerContainer connectServerContainer, IGuildServer guildServer, ILoginServer loginServer, IFriendServer friendServer, IIpAddressResolver ipResolver, PlugInManager plugInManager) { this.loggerFactory = loggerFactory; this.servers = servers; this.gameServers = gameServers; this.persistenceContextProvider = persistenceContextProvider; this.connectServerContainer = connectServerContainer; this.guildServer = guildServer; this.loginServer = loginServer; this.friendServer = friendServer; this.ipResolver = ipResolver; this.plugInManager = plugInManager; this.logger = this.loggerFactory.CreateLogger <GameServerContainer>(); }
/// <summary> /// Initializes a new instance of the <see cref="DefaultTcpGameServerListener" /> class. /// </summary> /// <param name="endPoint">The endpoint to which this listener is listening.</param> /// <param name="gameServerInfo">The game server information.</param> /// <param name="gameContext">The game context.</param> /// <param name="stateObserver">The connect server.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> public DefaultTcpGameServerListener(GameServerEndpoint endPoint, IGameServerInfo gameServerInfo, GameServerContext gameContext, IGameServerStateObserver stateObserver, IIpAddressResolver addressResolver) { this.endPoint = endPoint; this.gameServerInfo = gameServerInfo; this.gameContext = gameContext; this.stateObserver = stateObserver; this.addressResolver = addressResolver; }
/// <summary> /// Initializes a new instance of the <see cref="DefaultTcpGameServerListener" /> class. /// </summary> /// <param name="endPoint">The endpoint to which this listener is listening.</param> /// <param name="gameServerInfo">The game server information.</param> /// <param name="gameContext">The game context.</param> /// <param name="connectServer">The connect server.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> public DefaultTcpGameServerListener(GameServerEndpoint endPoint, IGameServerInfo gameServerInfo, GameServerContext gameContext, IConnectServer connectServer, IIpAddressResolver addressResolver) { this.endPoint = endPoint; this.gameServerInfo = gameServerInfo; this.gameContext = gameContext; this.connectServer = connectServer; this.addressResolver = addressResolver; }
/// <summary> /// Initializes a new instance of the <see cref="DefaultTcpGameServerListener" /> class. /// </summary> /// <param name="port">The tcp port.</param> /// <param name="gameServerInfo">The game server information.</param> /// <param name="gameContext">The game context.</param> /// <param name="connectServer">The connect server.</param> /// <param name="mainPacketHandler">The main packet handler which should be used by clients which connected through this listener.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> public DefaultTcpGameServerListener(int port, IGameServerInfo gameServerInfo, GameServerContext gameContext, IConnectServer connectServer, IMainPacketHandler mainPacketHandler, IIpAddressResolver addressResolver) { this.port = port; this.gameServerInfo = gameServerInfo; this.gameContext = gameContext; this.connectServer = connectServer; this.mainPacketHandler = mainPacketHandler; this.addressResolver = addressResolver; }
/// <summary> /// Initializes a new instance of the <see cref="DefaultTcpGameServerListener" /> class. /// </summary> /// <param name="endPoint">The endpoint to which this listener is listening.</param> /// <param name="gameServerInfo">The game server information.</param> /// <param name="gameContext">The game context.</param> /// <param name="stateObserver">The connect server.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> /// <param name="loggerFactory">The logger factory.</param> public DefaultTcpGameServerListener(GameServerEndpoint endPoint, IGameServerInfo gameServerInfo, GameServerContext gameContext, IGameServerStateObserver stateObserver, IIpAddressResolver addressResolver, ILoggerFactory loggerFactory) { this.endPoint = endPoint; this.gameServerInfo = gameServerInfo; this.gameContext = gameContext; this.stateObserver = stateObserver; this.addressResolver = addressResolver; this.loggerFactory = loggerFactory; this.logger = this.loggerFactory.CreateLogger <DefaultTcpGameServerListener>(); }
/// <summary> /// Initializes a new instance of the <see cref="ChatServerListener" /> class. /// </summary> /// <param name="port">The port.</param> /// <param name="stateObserver">The state observer.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> public ChatServerListener(int port, IServerStateObserver stateObserver, IIpAddressResolver addressResolver) { this.port = port; this.stateObserver = stateObserver; this.addressResolver = addressResolver; this.manager = new ChatRoomManager(); this.randomNumberGenerator = RandomNumberGenerator.Create(); this.clientCleanupTimer = new Timer(1000 * 60); // every 60 seconds this.clientCleanupTimer.Elapsed += this.ClientCleanupInactiveClients; this.clientCleanupTimer.Start(); this.roomCleanupTimer = new Timer(1000 * 5); // every 5 seconds this.roomCleanupTimer.Elapsed += this.ClientCleanupUnusedRooms; this.roomCleanupTimer.Start(); }
public WebpackAssetsResolver(IWebHostEnvironment env, IIpAddressResolver ipAddressResolver) { _env = env; _localIp = _env.IsDevelopment() ? ipAddressResolver.GetLocalAddress().ToString() : null; var fileName = "webpack-assets.json"; var fileInfo = _env.WebRootFileProvider.GetFileInfo(fileName); if (fileInfo.Exists == false || fileInfo.IsDirectory) { throw new FileNotFoundException($"{fileName} not found in {_env.WebRootPath}."); } using var stream = fileInfo.CreateReadStream(); using var reader = new StreamReader(stream); _assets = JsonConvert.DeserializeObject <IReadOnlyDictionary <string, WebpackAssetsEntry> >(reader.ReadToEnd()); }
/// <summary> /// Initializes a new instance of the <see cref="ChatServer" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="plugInManager">The plug in manager.</param> public ChatServer(ChatServerSettings settings, IIpAddressResolver addressResolver, ILoggerFactory loggerFactory, PlugInManager plugInManager) { this.loggerFactory = loggerFactory; this.logger = loggerFactory.CreateLogger <ChatServer>(); this.settings = settings; this.addressResolver = addressResolver; this.manager = new ChatRoomManager(loggerFactory); this.randomNumberGenerator = RandomNumberGenerator.Create(); this.clientCleanupTimer = new Timer(this.settings.ClientCleanUpInterval.TotalMilliseconds); this.clientCleanupTimer.Elapsed += this.ClientCleanupInactiveClients; this.clientCleanupTimer.Start(); this.roomCleanupTimer = new Timer(this.settings.RoomCleanUpInterval.TotalMilliseconds); this.roomCleanupTimer.Elapsed += this.ClientCleanupUnusedRooms; this.roomCleanupTimer.Start(); foreach (var endpoint in this.settings.Endpoints) { var listener = new ChatServerListener(endpoint, plugInManager, loggerFactory); listener.ClientAccepted += this.ChatClientAccepted; listener.ClientAccepting += this.ChatClientAccepting; this.listeners.Add(listener); } }
/// <summary> /// Initializes a new instance of the <see cref="ChatServer" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="addressResolver">The address resolver which returns the address on which the listener will be bound to.</param> public ChatServer(ChatServerSettings settings, IIpAddressResolver addressResolver) { this.settings = settings; this.addressResolver = addressResolver; this.manager = new ChatRoomManager(); this.randomNumberGenerator = RandomNumberGenerator.Create(); this.clientCleanupTimer = new Timer(this.settings.ClientCleanUpInterval.TotalMilliseconds); this.clientCleanupTimer.Elapsed += this.ClientCleanupInactiveClients; this.clientCleanupTimer.Start(); this.roomCleanupTimer = new Timer(this.settings.RoomCleanUpInterval.TotalMilliseconds); this.roomCleanupTimer.Elapsed += this.ClientCleanupUnusedRooms; this.roomCleanupTimer.Start(); var plugInManager = new PlugInManager(); plugInManager.DiscoverAndRegisterPlugInsOf <INetworkEncryptionFactoryPlugIn>(); foreach (var endpoint in this.settings.Endpoints) { var listener = new ChatServerListener(endpoint, plugInManager); listener.ClientAccepted += this.ChatClientAccepted; listener.ClientAccepting += this.ChatClientAccepting; this.listeners.Add(listener); } }