예제 #1
0
 internal static void UnsubscribeNoticeReceived(IAVIMListener listener)
 {
     lock (lisentersMutex)
     {
         lisenters.Remove(listener);
     }
 }
예제 #2
0
 /// <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);
         }
     });
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
 /// <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);
 }
예제 #5
0
 /// <summary>
 /// Registers the listener.
 /// </summary>
 /// <param name="listener">Listener.</param>
 public void RegisterListener(IAVIMListener listener)
 {
     this.CurrentClient.RegisterListener(listener, this.ConversationIdHook);
 }