internal static void UnsubscribeNoticeReceived(IAVIMListener listener) { lock (lisentersMutex) { lisenters.Remove(listener); } }
/// <summary> /// 设定监听者 /// </summary> /// <param name="listener"></param> /// <param name="runtimeHook"></param> public void SubscribeNoticeReceived(IAVIMListener listener, Func <AVIMNotice, bool> runtimeHook = null) { this.NoticeReceived += new EventHandler <AVIMNotice>((sender, notice) => { var approved = runtimeHook == null ? listener.ProtocolHook(notice) : runtimeHook(notice) && listener.ProtocolHook(notice); if (approved) { listener.OnNoticeReceived(notice); } }); }
internal static void SubscribeNoticeReceived(IAVIMListener listener, Func <AVIMNotice, bool> runtimeHook = null) { //NoticeReceived += new EventHandler<AVIMNotice>((sender, notice) => //{ // var approved = runtimeHook == null ? listener.ProtocolHook(notice) : runtimeHook(notice) && listener.ProtocolHook(notice); // if (approved) // { // listener.OnNoticeReceived(notice); // } //}); lock (lisentersMutex) { lisenters.Add(listener); } }
/// <summary> /// 注册 IAVIMListener /// </summary> /// <param name="listener"></param> /// <param name="runtimeHook"></param> public void RegisterListener(IAVIMListener listener, Func <AVIMNotice, bool> runtimeHook = null) { _realtime.SubscribeNoticeReceived(listener, runtimeHook); }
/// <summary> /// Registers the listener. /// </summary> /// <param name="listener">Listener.</param> public void RegisterListener(IAVIMListener listener) { this.CurrentClient.RegisterListener(listener, this.ConversationIdHook); }