Пример #1
0
        private void GotMessageOnConnection(object sender, MessageEventArgs e)
        {
            string msgType     = e.msg.GetType().Name;
            string textToPrint = "";

            switch (msgType)
            {
            case "IdentificationMessage":
                textToPrint = "user " + ((IdentificationMessage)e.msg).SourceUser.Name + " got connected";
                UserContext UserContextInActiveConnectionsList = ConnectedUsers.Single(uc => uc.Connection == (Connection)sender);
                UserContextInActiveConnectionsList.User = ((IdentificationMessage)e.msg).SourceUser;

                IdentificationMessage retMsg = (IdentificationMessage)e.msg;
                retMsg.Status = true;
                ((Connection)sender).SendMessage(retMsg);
                if (NewClientLoginEv != null)
                {
                    NewClientLoginEv(sender, new UserContextEventArgs(UserContextInActiveConnectionsList));
                }
                break;

            case "TextMessage":
                foreach (var item in ConnectedUsers.Where(uc => uc.Connection != (Connection)sender))
                {
                    item.Connection.SendMessage(e.msg);
                }
                break;

            default:
                break;
            }
            Logger.Print("INFO: " + textToPrint);
        }