예제 #1
0
 protected virtual void OnMessageReceived(ServerReceiveEventArgs e)
 {
     logger.Debug("RECEIVED FROM {0}: {1}",
                  e.Context.ClientKey,
                  Encoding.ASCII.GetString(e.Data, 0, e.Data.Length));
     InvokeDelegate(MessageReceived, e);
 }
예제 #2
0
        private void Server_MessageReceived(object sender, ServerReceiveEventArgs e)
        {
            string clientName = (string)e.Context.Tag;

            lock (ClientsByNameLock)
                ClientsByName[clientName].LastSeen = DateTime.UtcNow;

            string message = BytesToString(e.Data);

            if (string.IsNullOrEmpty(message))
            {
                // TODO(jweyrich): Handle invalid message.
                return;
            }

            string[] lines = message.Split('\n');
            foreach (string line in lines)
            {
                if (!string.IsNullOrEmpty(line))
                {
                    HandleMessage(e.Context, line);
                }
            }
        }