コード例 #1
0
        public ISubscription SubscribeAsync <T>(Func <T, MessageContext, Task> subscribeMethod, Action <ISubscriptionConfigurationBuilder> configuration = null)
        {
            var subscribeWrapper = new Func <T, MessageContext, Task>((arg1, context) =>
            {
                var subscribeTask = subscribeMethod(arg1, context);

                subscribeTask.ContinueWith(task =>
                {
                    if (task.IsFaulted == false)
                    {
                        MessageProcessedEvent?.Invoke();
                    }
                });

                return(subscribeTask);
            });

            return(_client.SubscribeAsync(subscribeWrapper, configuration));
        }
コード例 #2
0
        public string Init()
        {
            try
            {
                ////Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

                ////AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

                LogableClass.ToLog("实例化接口", "开始");
                if (client == null)
                {
                    client = new Client();
                }
                LogableClass.ToLog("启动二维码", "开始");
                if (DisplayByFrm)
                {
                    qrForm = new QrCodeForm();
                }

                LogableClass.ToLog("指定响应事件", "开始");



                //获取登陆之后记录的cookie,实现推送手机端登陆,取代扫码

                //若不需要,注释掉以下代码即可



                client.ExceptionCatched += Client_ExceptionCatched;;

                client.GetLoginQrCodeComplete += Client_GetLoginQrCodeComplete;;

                client.CheckScanComplete += Client_CheckScanComplete;;

                client.LoginComplete += Client_LoginComplete;

                client.DelContactListComplete += Client_DelContactListComplete;;

                client.ModContactListComplete += Client_ModContactListComplete;

                client.GetContactComplete         += Client_GetContactComplete;;
                client.BatchGetContactComplete    += Client_BatchGetContactComplete;;
                client.MPSubscribeMsgListComplete += Client_MPSubscribeMsgListComplete;;

                client.LogoutComplete += Client_LogoutComplete;;
                if (DisplayByFrm)
                {
                    frm = new frm_MainWin(client);
                    client.ReceiveMsg        += RefreshMsg;
                    this.MsgProcessCompleted += frm.RefreshMsg;
                }
                else
                {
                    client.ReceiveMsg += Client_ReceiveMsg;
                }



                //client.GetContactComplete += frm.RefreshContact;

                Console.WriteLine("小助手启动");
                LogableClass.ToLog("小助手启动", "开始");



                //获取群成员详情,需要我们主动调用,一般用不到,因为群里已经包含Member基本信息。

                //Contact chatRoom = contactDict["群UserName"];

                //string listStr = string.Join(",", chatRoom.MemberList);

                //client.GetBatchGetContactAsync(listStr, chatRoom.UserName);

                return("");
            }
            catch (Exception ce)
            {
                LogableClass.ToLog("错误", "初始化接口失败!", string.Format("{0}:{1}", ce.Message, ce.StackTrace));
                return(string.Format("{0}:{1}", ce.Message, ce.StackTrace));
            }
        }