/// <summary> /// 添加消息 /// </summary> /// <param name="type"></param> /// <param name="msg"></param> private void AddMessage(MessageVer msg, string baseMsg) { switch (msg.Type) { case "chat": { msgAddChat(msg.User, msg.Msg); break; } case "auth": { MsgAddSystem("验证登录成功", null); break; } case "members": { Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart) delegate() { Members.Visibility = Visibility.Visible; MembersText.Text = (int.Parse(msg.User) - 1).ToString(); }); break; } case "join": { Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart) delegate() { if (int.Parse(msg.Msg) >= int.Parse(MembersText.Text)) { MsgAddSystem(msg.User + " 进入了房间", null); } else if (int.Parse(msg.Msg) < int.Parse(MembersText.Text)) { MsgAddSystem(msg.User + " 退出了房间", null); } MembersText.Text = msg.Msg; }); break; } default: { Log.AddLog("N2Viewer", "未知消息类型:" + baseMsg); break; } } }
/// <summary> /// 序列化消息 /// </summary> /// <param name="msg"></param> private void ChangeMessage(string msg) { if (msg == "" || msg == null) { Log.AddLog("N2Viewer", "空消息!"); return; } List <string> baseMsg = new List <string>(); if (msg.IndexOf(";") >= 0) { baseMsg = new List <string> { msg.Substring(0, msg.IndexOf(";")), msg.Substring(msg.IndexOf(";") + 1) }; } else { baseMsg = new List <string> { msg, "" }; } baseMsg = new List <string> { baseMsg[0].Split(' ')[0], baseMsg[0].Split(' ')[1], baseMsg[1], "false" }; if (baseMsg[1] == "0") { baseMsg[3] = "true"; } MessageVer msgInfo = new MessageVer( baseMsg[0], baseMsg[1], baseMsg[2], baseMsg[3] ); AddMessage(msgInfo, msg); }