Exemple #1
0
        protected void UpdateServerConnectionState(
            NetConnectionStatus s,
            NetIncomingMessage message,
            MessagePipe pipe)
        {
            switch (s)
            {
            case NetConnectionStatus.Connected:
                Log.Debug("player connected: {connection}", message.SenderConnection);
                OnClientConnectionSuccessful?.Invoke(message.SenderConnection);
                break;

            case NetConnectionStatus.Disconnected:
                Log.Debug("player disconnected: {connection}", message.SenderConnection);
                OnClientDisconnected?.Invoke(message.SenderConnection);
                break;

            case NetConnectionStatus.Disconnecting:
            case NetConnectionStatus.InitiatedConnect:
            case NetConnectionStatus.None:
            case NetConnectionStatus.ReceivedInitiation:
            case NetConnectionStatus.RespondedConnect:
            case NetConnectionStatus.RespondedAwaitingApproval:
                break;
            }


            Log.Information("Updated connection status: " + s.ToString());
        }
Exemple #2
0
        /// <summary>
        /// Process message on NetworkPipe
        /// This is generic between Client and Server.
        /// </summary>
        /// <param name="message"></param>
        /// <param name="pipe"></param>
        protected void ProcessMessage(NetIncomingMessage message, MessagePipe pipe)
        {
            switch (message.MessageType)
            {
            case NetIncomingMessageType.DebugMessage:
                Log.Debug("NET: {message}", message.ReadString());
                break;

            case NetIncomingMessageType.ErrorMessage:
                Log.Error("NET: {message}", message.ReadString());
                break;

            case NetIncomingMessageType.WarningMessage:
                Log.Warning("NET: {message}", message.ReadString());
                break;

            case NetIncomingMessageType.VerboseDebugMessage:
                Log.Debug("NET: {message}", message.ReadString());
                break;

            case NetIncomingMessageType.StatusChanged:
                NetConnectionStatus status = (NetConnectionStatus)message.ReadByte();
                UpdateServerConnectionState(status, message, pipe);

                break;

            case NetIncomingMessageType.Data:
                try
                {
                    pipe.Receive(message);
                }
                catch (System.Exception e)
                {
                    Log.Error("Exception: {e}", e);
                }
                break;

            default:
                break;
            }
        }
 /// <summary>
 /// Buffer capture stores all network messages which have been sent with the specified filter.
 /// It supports multiple filters too!
 /// </summary>
 /// <param name="_pipe"></param>
 public BufferCapture(MessagePipe _pipe)
 {
     pipe     = _pipe;
     messages = new List <BufferData>();
     filters  = new List <string>();
 }