/// <summary> /// Process the peer messages /// </summary> private void PeerOnMessageReceivedEvent(IClient sender, MessageEventArgs messageArgs) { var message = messageArgs.Message; if (message == null) return; switch (message.TypeOfMessage) { case MessageType.Request: switch (((RequestMessage)message).RequestedMessageType) { case MessageType.Ping: _superPeerNode.GetClientInfo().LastPingMesssageDateTime = DateTime.Now; break; case MessageType.CloseConnection: _superPeerNode.GetSuperPeerClient().Close(); break; } break; default: if (_superPeerNode is SuperPeerClient) new ClientMessageManager((SuperPeerClient)_superPeerNode).ClientPeerOnMessageReceivedEvent(sender, messageArgs); else if (_superPeerNode is SuperPeerServer) new ServerMessageManager((SuperPeerServer)_superPeerNode).ServerPeerOnMessageReceivedEvent(sender, messageArgs); break; } }
public void ClientPeerOnMessageReceivedEvent(IClient sender, MessageEventArgs messageArgs) { var message = messageArgs.Message; switch (message.TypeOfMessage) { case MessageType.ConnectAsClient: InitConnectionAsClient(((PeerAddressMessage)messageArgs.Message).PeerAddress); break; } }
public void ServerPeerOnMessageReceivedEvent(IClient sender, MessageEventArgs messageArgs) { var message = messageArgs.Message; switch (message.TypeOfMessage) { case MessageType.ConnectAsServer: _superPeerServer.GetClientInfo().Client.StopListeningMessages(); InitConnectionAsServer(((PeerAddressMessage) messageArgs.Message).PeerAddress); break; } }