Exemplo n.º 1
0
 /// <summary>
 /// Register the user registered message types in a message type config.
 /// </summary>
 /// <param name="types">The message type config.</param>
 void RegisterUserMessageTypes(MessageTypeConfig types)
 {
     foreach (KeyValuePair <Type, IMessageType> item in _messageTypes)
     {
         types.RegisterMessageType(item.Key, item.Value);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Initialize a messenger.
        /// </summary>
        /// <param name="typeConfig">The message type config.</param>
        public Messenger(MessageTypeConfig typeConfig)
        {
            if (typeConfig == null)
            {
                throw new ArgumentNullException("typeConfig");
            }

            TypeConfig = typeConfig;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Register the default message types.
        /// </summary>
        void RegisterDefaultMessageTypes()
        {
            MessageTypeConfig types = Messenger.TypeConfig;

            types.RegisterMessageType <AcknowledgeResponse>(new AcknowledgeResponseSerializer());
            types.RegisterMessageType <UdpPortMessage <Server> >(new UdpPortMessageSerializer <Server>());
            types.RegisterMessageType <UdpPortMessage <Client> >(new UdpPortMessageSerializer <Client>(), HandleUdpPortMessage);
            types.RegisterMessageType <ClientSystemMessage>(new ClientSystemMessageSerializer(), new ClientSystemMessageHandler(this));
            types.RegisterMessageType <ServerSystemMessage>(new ServerSystemMessageSerializer());
            types.RegisterMessageType <ClientSecretMessage>(new ClientSecretMessageSerializer());
            types.RegisterMessageType <DisconnectMessage>(new DisconnectMessageSerializer(), HandleDisconnectMessage);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Create a game server.
        /// </summary>
        /// <param name="ipAddress">The server's IP address.</param>
        /// <param name="tcpPort">The server's TCP port.</param>
        /// <param name="udpPort">The server's UDP port.</param>
        /// <returns>The game server.</returns>
        public Server CreateServer(IPAddress ipAddress, ushort tcpPort = ServerConfiguration.DEFAULT_PORT, ushort udpPort = NetworkConfiguration.DEFAULT_UDP_PORT)
        {
            var types     = new MessageTypeConfig();
            var messenger = new Messenger(types);
            var server    = new Server(new ServerConfiguration(ipAddress, tcpPort, udpPort), messenger);

            RegisterUserMessageTypes(types);

            foreach (KeyValuePair <Type, IMessageType> item in _serverMessageTypes)
            {
                types.RegisterMessageType(item.Key, item.Value);
            }

            server.RegisterDataHandler(messenger);

            return(server);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Create a game client.
        /// </summary>
        /// <param name="config">The client configuration.</param>
        /// <returns>The game client.</returns>
        public Client CreateClient(ushort udpPort = NetworkConfiguration.DEFAULT_UDP_PORT)
        {
            var types     = new MessageTypeConfig();
            var messenger = new Messenger(types);
            var client    = new Client(new ClientConfiguration(udpPort), messenger);

            RegisterUserMessageTypes(types);

            foreach (KeyValuePair <Type, IMessageType> item in _clientMessageTypes)
            {
                types.RegisterMessageType(item.Key, item.Value);
            }

            client.RegisterDataHandler(messenger);

            return(client);
        }
Exemplo n.º 6
0
        void RegisterMessageTypes()
        {
            MessageTypeConfig types = BaseServer.Messenger.TypeConfig;

            types.RegisterMessageType <PlayerId>(new PlayerIdSerializer());
            types.RegisterMessageType <PlayerName>(new PlayerNameSerializer(), HandlePlayerNameMessage);
            types.RegisterMessageType <Player>(new PlayerSerializer());
            types.RegisterMessageType <ChallengePlayer>(new ChallengePlayerSerializer(), HandleChallengePlayerMessage);
            types.RegisterMessageType <Messages.Challenge>(new ChallengeSerializer());
            types.RegisterMessageType <DeclineChallenge>(new DeclineChallengeSerializer(), HandleDeclineChallengeMessage);
            types.RegisterMessageType <ChallengeDeclined>(new ChallengeDeclinedSerializer());
            types.RegisterMessageType <AcceptChallenge>(new AcceptChallengeSerializer(), HandleAcceptChallengeMessage);
            types.RegisterMessageType <GameStateUpdate>(new GameStateUpdateSerializer());
            types.RegisterMessageType <SessionStarted>(new SessionStartedSerializer());
            types.RegisterMessageType <PlayerDisconnected>(new PlayerDisconnectedSerializer());
            types.RegisterMessageType <MovePaddle>(new MovePaddleSerializer(), HandleMovePaddleMessage);
            types.RegisterMessageType <LobbyEntered>(new LobbyEnteredSerializer(), HandleLobbyEnteredMessage);
        }
Exemplo n.º 7
0
        void RegisterMessageTypes()
        {
            MessageTypeConfig types = Server.Messenger.TypeConfig;

            types.RegisterMessageType <CreateLobby>(new CreateLobbySerializer(), new CreateLobbyHandler(this));
        }
Exemplo n.º 8
0
        void RegisterMessageTypes()
        {
            MessageTypeConfig types = Client.Messenger.TypeConfig;

            types.RegisterMessageType <CreateLobby>(new CreateLobbySerializer());
        }