예제 #1
0
 public MhfConnection(ITcpSocket clientSocket, PacketFactory packetFactory)
 {
     _logger       = LogProvider.Logger <MhfLogger>(this);
     Socket        = clientSocket;
     PacketFactory = packetFactory;
     Client        = null;
 }
예제 #2
0
 public PacketFactory(MhfSetting setting)
 {
     _logger      = LogProvider.Logger <MhfLogger>(this);
     _setting     = setting;
     _readKeyRot  = CryptoInit;
     _sendKeyRot  = CryptoInit;
     _sentPackets = 0;
     _header      = null;
     Reset();
 }
예제 #3
0
 public QueueConsumer(MhfSetting setting, AsyncEventSettings socketSetting)
 {
     _setting            = setting;
     _logger             = LogProvider.Logger <MhfLogger>(this);
     _maxUnitOfOrder     = socketSetting.MaxUnitOfOrder;
     _queues             = new BlockingCollection <ClientEvent> [_maxUnitOfOrder];
     _threads            = new Thread[_maxUnitOfOrder];
     _lock               = new object();
     _clientHandlers     = new Dictionary <int, IClientHandler>();
     _connectionHandlers = new Dictionary <int, IConnectionHandler>();
     _connections        = new Dictionary <ITcpSocket, MhfConnection>();
 }
예제 #4
0
        public MhfServer(MhfSetting setting)
        {
            Setting = new MhfSetting(setting);

            LogProvider.Configure <MhfLogger>(Setting);
            _logger = LogProvider.Logger <MhfLogger>(this);

            Instances = new InstanceGenerator();
            Clients   = new ClientLookup();
            Router    = new PacketRouter();
            Database  = new MhfDatabaseBuilder().Build(Setting.DatabaseSetting);

            _authConsumer = new QueueConsumer(Setting, Setting.ServerSocketSettings);
            _authConsumer.ClientDisconnected += AuthClientDisconnected;
            _authServer = new AsyncEventServer(
                Setting.ListenIpAddress,
                Setting.AuthServerPort,
                _authConsumer,
                Setting.ServerSocketSettings
                );

            _lobbyConsumer = new QueueConsumer(Setting, Setting.ServerSocketSettings);
            _lobbyConsumer.ClientDisconnected += LobbyClientDisconnected;
            _lobbyServer = new AsyncEventServer(
                Setting.ListenIpAddress,
                Setting.LobbyServerPort,
                _lobbyConsumer,
                Setting.ServerSocketSettings
                );

            _webServer = new WebServer(Setting, new KestrelWebServer(Setting));

            WebFileProvider = new PhysicalFileProvider(Setting.WebSetting.WebFolder);

            LoadPacketHandler();
            LoadWebRoutes();
        }
예제 #5
0
 public MhfClient()
 {
     _logger  = LogProvider.Logger <MhfLogger>(this);
     Creation = DateTime.Now;
     Identity = "";
 }
예제 #6
0
 public MhfSqlDb()
 {
     Logger = LogProvider.Logger <MhfLogger>(this);
 }
예제 #7
0
 public PacketRouter()
 {
     _logger = LogProvider.Logger <MhfLogger>(this);
 }