public void Recv(Msg msg) { if (msg.MsgType != 1) return; RecvBox.Text += Data.Contactlist[msg.FromUserName].DisplayName + ":\n"; RecvBox.Text += msg.Content + "\n"; RecvBox.ScrollToEnd(); }
public void 记录消息(Msg msg) { Trace.WriteLine("记录消息"); Trace.WriteLine("消息类型:" + msg.MsgType); Trace.WriteLine("消息内容:" + msg.Content); string friend = msg.FromUserName.Equals(Data.me.UserName) ? msg.ToUserName : msg.FromUserName; //暂时只支持文字 if (msg.MsgType != 1) return; //记录消息 if (!Data.messages.ContainsKey(friend)) Data.messages.Add(friend, new List<Msg>()); Data.messages[friend].Add(msg); //刷新消息 if (Data.dialogs.ContainsKey(friend) && Data.dialogs[friend] != null) { //更新窗口 Action<Msg> updateAction = new Action<Msg>(Data.dialogs[friend].Recv); Data.dialogs[friend].Dispatcher.BeginInvoke(updateAction, msg); //任务栏闪烁 //System.Windows.Interop.WindowInteropHelper wndHelper = new System.Windows.Interop.WindowInteropHelper(Data.dialogs[friend]); //flashTaskBar(wndHelper.Handle, falshType.FLASHW_TIMERNOFG); } else { //加入会话列表 if (!Data.Chatlist.ContainsKey(friend)) Data.Chatlist.Add(friend, Data.Contactlist[friend]); //刷新ui if (current_isChat) Dispatcher.BeginInvoke(new Action<bool>(更新界面), true); } //播放声音 if (!msg.FromUserName.Equals(Data.me.UserName)) Data.player.Play(); }
public void Send(object sender, MouseButtonEventArgs e) { long time = Time.Now(); string url = "http://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsendmsg" + "?sid=" + Data.wxsid + "&skey=" + Data.skey + "&pass_ticket=" + Data.pass_ticket + "&r=" + time; WebRequest request = WebRequest.Create(url); request.Method = "POST"; JObject jsonObj = new JObject(); jsonObj.Add("BaseRequest", JObject.FromObject(Data.baseRequest)); SendMsg msg = new SendMsg(); msg.FromUserName = Data.me.UserName; msg.ToUserName = user.UserName; msg.Type = 1; msg.Content = SendBox.Text.Replace("\r", ""); msg.ClientMsgId = time; msg.LocalID = time; SendBox.Clear(); jsonObj.Add("Msg", JObject.FromObject(msg)); byte[] byteArray = Encoding.UTF8.GetBytes(jsonObj.ToString().Replace("\r\n", "")); request.ContentType = "application/json; charset=UTF-8"; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string ret = reader.ReadToEnd(); webwxsendmsg wxsendmsg = JsonConvert.DeserializeObject<webwxsendmsg>(ret); reader.Close(); dataStream.Close(); response.Close(); Msg recvmsg = new Msg(); recvmsg.MsgId = wxsendmsg.MsgID; recvmsg.FromUserName = msg.FromUserName; recvmsg.ToUserName = msg.ToUserName; recvmsg.MsgType = msg.Type; recvmsg.Content = msg.Content; recvmsg.CreateTime = msg.LocalID; Trace.WriteLine("发送消息"); Trace.WriteLine(recvmsg.Content); Data.main.记录消息(recvmsg); }