// 拉取消息 private void PollMessage() { // Logger.Debug(DateTime.Now + " 开始接收消息"); var r = new JObject { { "ptwebqq", Ptwebqq }, { "clientid", ClientId }, { "psessionid", Psessionid }, { "key", "" } }; var response = Client.Post(ApiUrl.PollMessage, r); var array = GetResponseJson(response)["result"] as JArray; for (var i = 0; array != null && i < array.Count; i++) { var message = (JObject)array[i]; var type = message["poll_type"].Value <string>(); switch (type) { case "message": var fmsg = message["value"].ToObject <FriendMessage>(); fmsg.Client = this; FriendMessageReceived?.Invoke(this, fmsg); break; case "group_message": var gmsg = message["value"].ToObject <GroupMessage>(); gmsg.Client = this; GroupMessageReceived?.Invoke(this, gmsg); break; case "discu_message": var dmsg = message["value"].ToObject <DiscussionMessage>(); dmsg.Client = this; DiscussionMessageReceived?.Invoke(this, dmsg); break; default: Logger.Warn("意外的消息类型:" + type); break; } } }
protected override void OnStartListeningToHub() { _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_MESSAGE, (args) => { FriendMessageReceived.Invoke(this, args); }); _hubConnection.On <object>(_UNREAD_FRIEND_MESSAGES, (args) => { try { ResolvedUnreadFriendMessagesSignalArgs resolvedUnreadFriendMessagesSignalArgs = JsonConvert.DeserializeObject <ResolvedUnreadFriendMessagesSignalArgs>(args.ToString()); RefreshedUnreadFriendMessages.Invoke(this, resolvedUnreadFriendMessagesSignalArgs); } catch (Exception exc) { Debugger.Break(); throw new InvalidOperationException("MessagesService on SignalR UnreadedMessages", exc); } }); }
private void FriendMessageReceivedHandler(object sender, ToxEventArgs.FriendMessageEventArgs e) { FriendMessageReceived?.Invoke(this, e); }