/// <summary> /// 将接收到的消息添加到消息列表 /// </summary> /// <param name="msg">云信消息数据</param> private void addMessage(NIMIMMessage msg) { var message = new NimMessage { id = msg.ClientMsgID, msgid = msg.ServerMsgId, from = msg.SenderID, to = msg.ReceiverID, type = msg.MessageType.GetHashCode(), body = NimUtil.getMsg(msg), direction = msg.SenderID == targetId ? 1 : 0, timetag = msg.TimeStamp / 1000 }; messages.Add(message); }
/// <summary> /// 查询历史消息 /// </summary> private void getHistory() { MessagelogAPI.QueryMsglogOnline(targetId, NIMSessionType.kNIMSessionTypeP2P, 6, 0, endTime, 0, false, true, true, (code, accountId, sType, result) => { void action() { var list = result.MsglogCollection; if (list == null || list.Length == 0) { return; } foreach (var msg in list.OrderByDescending(i => i.TimeStamp)) { var message = new NimMessage { id = msg.ClientMsgID, msgid = msg.ServerMsgId, from = msg.SenderID, to = msg.ReceiverID, type = msg.MessageType.GetHashCode(), body = NimUtil.getMsg(msg), direction = msg.SenderID == targetId ? 1 : 0, timetag = msg.TimeStamp / 1000 }; addMessage(message); } if (list.Length < 6) { sbeNext.Enabled = false; sbeNext.Text = "已到达终点"; return; } endTime = list.Last().TimeStamp; } Invoke((Action)action); }); }