/// <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); } }
/// <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; }
/// <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); }
/// <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); }
/// <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); }
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); }
void RegisterMessageTypes() { MessageTypeConfig types = Server.Messenger.TypeConfig; types.RegisterMessageType <CreateLobby>(new CreateLobbySerializer(), new CreateLobbyHandler(this)); }
void RegisterMessageTypes() { MessageTypeConfig types = Client.Messenger.TypeConfig; types.RegisterMessageType <CreateLobby>(new CreateLobbySerializer()); }