Ejemplo n.º 1
0
        static ServerConnection()
        {
            var status = ConfigurationManager.AppSettings["DisconnectedStatus"];

            if (!string.IsNullOrEmpty(status))
            {
                var parts = status.Split(';');
                disconnectedStatus = new ClientSta {
                    status = parts[0].ToEnum <StatusEnum>(), statusmsg = parts.Length > 1 ? parts[1] : ""
                };
            }
        }
Ejemplo n.º 2
0
 public ServerConnection(IChatManager chatManager, IBufferManager buffer, CharacterManager characterManager, ChannelManager channelManager)
 {
     this.chatManager      = chatManager;
     this.buffer           = buffer;
     this.characterManager = characterManager;
     this.channelManager   = channelManager;
     statusTimer.Elapsed  += delegate {
         lock (statusTimer) {
             Send(ClientCommandType.STA, newStatus);
             newStatus      = null;
             lastStatusTime = DateTime.Now;
         }
     };
     chatManager.CommandReceived += OnServerCommandReceived;
     chatManager.Connected       += OnConnectComplete;
 }
Ejemplo n.º 3
0
        private void OnClientMessage(ClientCommand command)
        {
            switch (command.Type)
            {
            case ClientCommandType.PIN:
                return;

            case ClientCommandType.PRI:
            case ClientCommandType.MSG:
                buffer.ClearBuffer();
                break;

            case ClientCommandType.STA:
                customStatus = command.Payload.ToObject <ClientSta>();
                SetStatus(customStatus);
                return;
            }
            Send(command);
        }
Ejemplo n.º 4
0
 private void SetStatus(ClientSta status)
 {
     lock (statusTimer) {
         if (newStatus != null)
         {
             newStatus = status;
             return;
         }
         var now = DateTime.Now;
         if (lastStatusTime != null && now - lastStatusTime < statusInterval)
         {
             newStatus = status;
             statusTimer.Start();
             statusTimer.AutoReset = false;
         }
         else
         {
             Send(ClientCommandType.STA, status);
             lastStatusTime = DateTime.Now;
         }
     }
 }