public AuthenticatedHandler(
     IObjectSerializer objectSerializer,
     IGamePlatformAccessor gamePlatformAccessor,
     IConnectionHandler connectionHandler,
     ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
 {
     m_Logger = logger;
 }
예제 #2
0
 public MapManager(
     IGamePlatformAccessor gamePlatformAccessor,
     IEventBus eventBus,
     ITaskScheduler taskScheduler)
 {
     m_GamePlatformAccessor = gamePlatformAccessor;
     m_EventBus             = eventBus;
     m_TaskScheduler        = taskScheduler;
 }
 public RpcHandler(
     IObjectSerializer objectSerializer,
     IGamePlatformAccessor gamePlatformAccessor,
     IConnectionHandler connectionHandler,
     INetworkComponentManager networkComponentManager,
     ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
 {
     m_ObjectSerializer        = objectSerializer;
     m_NetworkComponentManager = networkComponentManager;
 }
 public InputUpdateHandler(
     IObjectSerializer objectSerializer,
     IGamePlatformAccessor gamePlatformAccessor,
     IConnectionHandler connectionHandler,
     IEntityManager entityManager,
     ITaskScheduler taskScheduler,
     ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
 {
     m_EntityManager = entityManager;
     m_TaskScheduler = taskScheduler;
 }
예제 #5
0
 protected BasePacketHandler(
     IObjectSerializer objectSerializer,
     IGamePlatformAccessor gamePlatformAccessor,
     IConnectionHandler connectionHandler,
     ILogger logger)
     : base(objectSerializer,
            gamePlatformAccessor,
            connectionHandler,
            logger)
 {
 }
예제 #6
0
 public ClientConnectionHandler(
     ITaskScheduler taskScheduler,
     IWindsorContainer container,
     IObjectSerializer packetSerializer,
     IIncomingNetworkEventHandler networkEventProcessor,
     ILogger logger,
     IEventBus eventBus,
     IGamePlatformAccessor gamePlatformAccessor) : base(packetSerializer, networkEventProcessor, logger, eventBus, gamePlatformAccessor)
 {
     m_TaskScheduler = taskScheduler;
     m_Container     = container;
     m_Logger        = logger;
     eventBus.Subscribe <ENetNetworkEvent>(this, OnNetworkEvent);
 }
예제 #7
0
        public ServerConnectionHandler(
            IObjectSerializer packetSerializer,
            IIncomingNetworkEventHandler networkEventProcessor,
            ILogger logger,
            IEventBus eventBus,
            ISnapshotCache snapshotCache,
            IGamePlatformAccessor gamePlatformAccessor,
            IMapManager mapManager) : base(packetSerializer, networkEventProcessor, logger, eventBus, gamePlatformAccessor)
        {
            m_EventBus   = eventBus;
            m_MapManager = mapManager;
            m_Logger     = logger;

            m_Snapshots   = snapshotCache;
            ClientTimeOut = TimeSpan.FromSeconds(15);
        }
예제 #8
0
        public WorldUpdateHandler(
            IEntityManager entityManager,
            IObjectSerializer objectSerializer,
            IGamePlatformAccessor gamePlatformAccessor,
            IConnectionHandler connectionHandler,
            IEventBus eventBus,
            ITaskScheduler taskScheduler,
            ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
        {
            m_EntityManager = entityManager;
            m_TaskScheduler = taskScheduler;
            m_Logger        = logger;

            if (gamePlatformAccessor.GamePlatform == GamePlatform.Server)
            {
                eventBus.Subscribe <ENetNetworkEvent>(this, OnNetworkEvent);
            }
        }
        public AuthenticateHandler(
            IObjectSerializer objectSerializer,
            IGamePlatformAccessor gamePlatformAccessor,
            IConnectionHandler connectionHandler,
            IEventBus eventBus,
            IMapManager mapManager,
            ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
        {
            m_EventBus = eventBus;
            m_ServerConnectionHandler = connectionHandler as ServerConnectionHandler;
            m_MapManager             = mapManager;
            m_Logger                 = logger;
            m_PendingAuthentications = new Dictionary <ulong, INetworkPeer>();

            if (gamePlatformAccessor.GamePlatform == GamePlatform.Server)
            {
#if STEAM_AUTH
                eventBus.Subscribe <NetworkEvent>(this, OnNetworkEvent);
                SteamServerComponent.Instance.Server.Auth.OnAuthChange += OnSteamAuthChange;
#endif
            }
        }
        public MapChangeHandler(ITaskScheduler taskScheduler, IEventBus eventBus, IMapManager mapManager, IObjectSerializer objectSerializer, IGamePlatformAccessor gamePlatformAccessor, IConnectionHandler connectionHandler, ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
        {
            m_TaskScheduler     = taskScheduler;
            m_MapManager        = mapManager;
            m_ConnectionHandler = connectionHandler;

            if (gamePlatformAccessor.GamePlatform == GamePlatform.Server)
            {
                eventBus.Subscribe <MapChangeEvent>(this, OnMapChange);
            }
        }
 public PingHandler(IEventBus eventBus, IObjectSerializer objectSerializer, IGamePlatformAccessor gamePlatformAccessor, IConnectionHandler connectionHandler, ILogger logger)
     : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
 {
     m_EventBus          = eventBus;
     m_ConnectionHandler = connectionHandler;
 }
        protected BaseConnectionHandler(IObjectSerializer packetSerializer, IIncomingNetworkEventHandler networkEventProcessor, ILogger logger, IEventBus eventBus, IGamePlatformAccessor gamePlatformAccessor)
        {
            eventBus.Subscribe <GameQuitEvent>(this, (s, e) => { Dispose(); });

            m_EventBus              = eventBus;
            m_PacketSerializer      = packetSerializer;
            m_NetworkEventProcessor = networkEventProcessor;
            m_Logger = logger;

            int capacity = 1024;

            if (gamePlatformAccessor.GamePlatform == GamePlatform.Server)
            {
                capacity *= ServerConnectionHandler.MaxPlayersUpperLimit;
            }

            m_OutgoingQueue      = new RingBuffer <OutgoingPacket>(capacity);
            m_ConnectedPeers     = new List <INetworkPeer>();
            m_PacketDescriptions = new Dictionary <byte, PacketDescription>();

            RegisterPacket((byte)PacketType.Ping, new PacketDescription(
                               name: nameof(PacketType.Ping),
                               direction: PacketDirection.Any,
                               channel: (byte)NetworkChannel.PingPong,
                               packetFlags: PacketFlags.Reliable)
                           );

            RegisterPacket((byte)PacketType.Pong, new PacketDescription(
                               name: nameof(PacketType.Pong),
                               direction: PacketDirection.Any,
                               channel: (byte)NetworkChannel.PingPong,
                               packetFlags: PacketFlags.Reliable)
                           );

            RegisterPacket((byte)PacketType.Authenticate, new PacketDescription(
                               name: nameof(PacketType.Authenticate),
                               direction: PacketDirection.ClientToServer,
                               channel: (byte)NetworkChannel.Main,
                               packetFlags: PacketFlags.Reliable,
                               needsAuthentication: false)
                           );

            RegisterPacket((byte)PacketType.Authenticated, new PacketDescription(
                               name: nameof(PacketType.Authenticated),
                               direction: PacketDirection.ServerToClient,
                               channel: (byte)NetworkChannel.Main,
                               packetFlags: PacketFlags.Reliable)
                           );

            RegisterPacket((byte)PacketType.MapChange, new PacketDescription(
                               name: nameof(PacketType.MapChange),
                               direction: PacketDirection.ServerToClient,
                               channel: (byte)NetworkChannel.Main,
                               packetFlags: PacketFlags.Reliable)
                           );

            RegisterPacket((byte)PacketType.WorldUpdate, new PacketDescription(
                               name: nameof(PacketType.WorldUpdate),
                               direction: PacketDirection.ServerToClient,
                               channel: (byte)NetworkChannel.World,
                               packetFlags: PacketFlags.Reliable) //Todo: Make this Unsequenced after Snapshots get implemented fully
                           );

            RegisterPacket((byte)PacketType.InputUpdate, new PacketDescription(
                               name: nameof(PacketType.InputUpdate),
                               direction: PacketDirection.ClientToServer,
                               channel: (byte)NetworkChannel.Input,
                               packetFlags: PacketFlags.Unsequenced)
                           );

            RegisterPacket((byte)PacketType.Terminate, new PacketDescription(
                               name: nameof(PacketType.Terminate),
                               direction: PacketDirection.ServerToClient,
                               channel: (byte)NetworkChannel.Input,
                               packetFlags: PacketFlags.Reliable)
                           );

            RegisterPacket((byte)PacketType.Rpc, new PacketDescription(
                               name: nameof(PacketType.Rpc),
                               direction: PacketDirection.Any,
                               channel: (byte)NetworkChannel.Rpc,
                               packetFlags: PacketFlags.Reliable)
                           );
        }
예제 #13
0
 public TerminateHandler(IObjectSerializer objectSerializer, IGamePlatformAccessor gamePlatformAccessor, IConnectionHandler connectionHandler, ILogger logger) : base(objectSerializer, gamePlatformAccessor, connectionHandler, logger)
 {
     m_ConnectionHandler = connectionHandler;
 }