public void sendMsg() { if (inputBox.ForeColor != Color.Gray || inputBox.Text != "") { textMessage message = new textMessage(); message.content = inputBox.Text; message.target = (int)targetUserID; message.sendUser = publicClass.mainUser.id; message.sendTime = DateTime.Now; AddMessage(message); if (publicClass.myChat.ContainsKey(message.target)) { publicClass.myChat[message.target].addMessage(message); } else { singleChatSession chatSession = new singleChatSession(message.target); chatSession.addMessage(message); publicClass.myChat.Add(message.target, chatSession); } string sendMessage = JsonConvert.SerializeObject(new command() { data = message, type = 1, subType = "singleChatTextMessage", res = "" }); //序列化 publicClass.cSocket.sendSysMsg(sendMessage, 0); } }
public void AddMessage(textMessage message) { groupChatMessageBox.SelectionFont = new Font("黑体", 9, FontStyle.Bold); groupChatMessageBox.SelectionColor = System.Drawing.Color.Purple; groupChatMessageBox.SelectionIndent = 2; groupChatMessageBox.SelectionBullet = true; groupChatMessageBox.AppendText(publicClass.onlineUserList.Find(s => s.id == message.sendUser).userName + " [" + message.sendTime + "]\r\n"); groupChatMessageBox.SelectionFont = new Font("宋体", 9, FontStyle.Regular); groupChatMessageBox.SelectionColor = System.Drawing.Color.Black; groupChatMessageBox.SelectionIndent = 19; groupChatMessageBox.SelectionBullet = false; groupChatMessageBox.AppendText(((textMessage)message).content + "\r\n"); }
//群聊文本信息解析 public static void decodeGroupTextMessageDraw(command cComand) { JObject data = (JObject)cComand.data; //转化为Jobject textMessage message = data["msg"].ToObject <textMessage>(); //获取消息类 foreach (group i in groupList) { if (i.id == message.target) { i.addMessage(message); } } if (g1 == null) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 1); })); } else if (g1.groupID != (uint)message.target) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 1); })); } else if (g1.groupID == (uint)message.target) { if (g1.IsDisposed) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 1); })); } else { g1.Invoke(new Action(() => { g1.AddMessage(message); })); } } }
public void sendMsg() { if (inputBox.ForeColor != Color.Gray && inputBox.Text != "") { textMessage message = new textMessage(); message.content = inputBox.Text; message.target = (int)groupID; message.sendUser = publicClass.mainUser.id; AddMessage(message); foreach (group i in publicClass.groupList) { if (i.id == groupID) { i.addMessage(message); break; } } string sendMessage = JsonConvert.SerializeObject(new command() { data = message, type = 0, subType = "groupChatTextMessage", res = "" }); //序列化 publicClass.cSocket.sendSysMsg(sendMessage, 0); } }
//添加一条聊天记录,可以是文字,图片,文件 public void addMessage(textMessage message) { messageList.Add(message);//添加到数组末尾 }
//单聊文本信息解析 public static void decodeSingleTextMessageDraw(command cComand) { JObject data = (JObject)cComand.data; //转化为Jobject textMessage message = data.ToObject <textMessage>(); //获取消息类 if (!myChat.ContainsKey(message.sendUser)) { singleChatSession chatSession = new singleChatSession(message.sendUser); chatSession.addMessage(message); myChat.Add(message.sendUser, chatSession); if (s1 == null) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else if (s1.targetUserID != (uint)message.sendUser) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else if (s1.targetUserID == (uint)message.sendUser) { if (s1.IsDisposed) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else { s1.Invoke(new Action(() => { s1.AddMessage(message); })); } } } else { myChat[message.sendUser].addMessage(message); if (s1 == null) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else if (s1.targetUserID != (uint)message.sendUser) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else if (s1.targetUserID == (uint)message.sendUser) { if (s1.IsDisposed) { m1.Invoke(new Action(() => { m1.userHeadTwinkle((uint)message.sendUser, 0); })); } else { s1.Invoke(new Action(() => { s1.AddMessage(message); })); } } } }