コード例 #1
0
ファイル: frmClient.cs プロジェクト: fengzijun/EchoSocket
 private void AddUser(UserInfo[] users)
 {
     if (this.InvokeRequired)
     {
         this.Invoke(
             new AddUserDel(
                 delegate(UserInfo[] innerUsers)
                 {
                     this.AddUser(innerUsers);
                 }
             ), users);
     }
     else
     {
         foreach (UserInfo u in users)
         {
             if (u.UserName != null)
             {
                 this.lstUsers.Items.Add(u);
             }
         }
     }
 }
コード例 #2
0
ファイル: frmClient.cs プロジェクト: xxjeng/nuxleus
        private void CheckMsg(string data)
        {

            ChatMessage msg = ChatSocketService.ChatSocketService.DeserializeMessage(Encoding.GetEncoding(1252).GetBytes(data));
            
            switch(msg.MessageType)
            {
                
                case MessageType.mtLogin:
                    
                    userInfo = msg.UserInfo[0];
                    UpdateList(userInfo.UserName + " has entered!");
                    break;

                case MessageType.mtAuthenticated:

                    UpdateList(msg.UserInfo[0].UserName + " has entered!");
                    AddUser(msg.UserInfo);
                    
                    break;

                case MessageType.mtMessage:
                
                    UpdateList(msg.UserInfo[0].UserName + "\r\n" + msg.Message);
                    break;

                case MessageType.mtHello:

                    AddUser(msg.UserInfo);
                    break;

                case MessageType.mtLogout:

                    RemoveUser(msg.UserInfo);
                    break;
                    
                    
            }

        }
コード例 #3
0
ファイル: frmClient.cs プロジェクト: xxjeng/nuxleus
        private void RemoveUser(UserInfo[] users)
        {

            if (this.InvokeRequired)
            {

                this.Invoke(
                    new AddUserDel(
                        delegate(UserInfo[] innerUsers)
                        {
                            this.RemoveUser(innerUsers);
                        }
                    ), users);

            }
            else
            {

                bool found = false;
                
                for (int j = 0; j < users.Length; j++)
			    {
    			
                    if (users[j].UserName != null)
                    {
                        for (int i = 0; i < this.lstUsers.Items.Count; i++)
                        {
                            
                            UserInfo u = (UserInfo) this.lstUsers.Items[i];
                            
                            if (u.UserId == users[j].UserId)
                            {
                                this.lstUsers.Items.RemoveAt(i);
                                found = true;
                                break;    
                            }

        	            }
        	            
        	        }
        	        
        	        if (found)
        	        {

                        UpdateList(users[0].UserName + " quits!");

        	            break;
        	        }

                }
                
            }

        }