コード例 #1
0
        // 拉取消息
        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;
                }
            }
        }
コード例 #2
0
        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);
                }
            });
        }
コード例 #3
0
 private void FriendMessageReceivedHandler(object sender, ToxEventArgs.FriendMessageEventArgs e)
 {
     FriendMessageReceived?.Invoke(this, e);
 }