Пример #1
0
        public void Subscriber(Guid id)
        {
            IPublisherEvents callback = OperationContext.Current.GetCallbackChannel <IPublisherEvents>();
            MainForm         form     = Application.OpenForms[0] as MainForm;

            form.AddSubscriber(id, callback);
        }
Пример #2
0
        public void Unsubscribe(Guid id)
        {
            IPublisherEvents callback = OperationContext.Current.GetCallbackChannel <IPublisherEvents>();
            PublisherForm    f        = Application.OpenForms[0] as PublisherForm;

            f.RemoveSubscriber(id, callback);
        }
Пример #3
0
 public void RemoveSubscriber(Guid id, IPublisherEvents callback)
 {
     if (dic.ContainsKey(id))
     {
         dic.Remove(id);
         lsbSubscribers.Items.Remove(id);
     }
 }
Пример #4
0
 public void AddSubscriber(Guid id, IPublisherEvents callback)
 {
     if (!dic.ContainsKey(id))
     {
         dic.Add(id, callback);
         lsbSubscribers.Items.Add(id);
     }
 }
Пример #5
0
 public void RemoveSubscriber(Guid id, IPublisherEvents subscriber)
 {
     if (m_listCallbacks.ContainsKey(id))
     {
         m_listCallbacks.Remove(id);
         this.lstSubscribers.Items.Remove(id);
     }
 }
Пример #6
0
 public void AddSubscriber(Guid id, IPublisherEvents subscriber)
 {
     if (!m_listCallbacks.ContainsKey(id))
     {
         m_listCallbacks.Add(id, subscriber);
         this.lstSubscribers.Items.Add(id);
     }
 }
Пример #7
0
        public void Subscriber(Guid guid, string code, string account)
        {
            IPublisherEvents callback = OperationContext.Current.GetCallbackChannel <IPublisherEvents>();

            OperationContext.Current.Channel.Closing += Channel_Closing;


            MessagePushManager.Subscriber(guid, code, account, callback);
            //是否有离线消息
            if (MessagePushManager.OffLineMessages != null && MessagePushManager.OffLineMessages.Count != 0)
            {
                MessagePushManager.OffLineMessages.Where(p => p.Value.Code == code).ToList().ForEach(p =>
                {
                    callback.Notify(p.Value.Command, p.Value.MessageContent, null);
                    OffLineMessage of = null;
                    MessagePushManager.OffLineMessages.TryRemove(p.Key, out of);
                });
            }
        }
Пример #8
0
 /// <summary>
 /// 订阅
 /// </summary>
 /// <param name="codeAccount"></param>
 /// <param name="callback"></param>
 public static void Subscriber(Guid guid, string code, string account, IPublisherEvents callback)
 {
     PushInfo pushInfo = new PushInfo(code, account, callback);
     PushList.AddOrUpdate(guid, pushInfo, (a, b) => { return pushInfo; });
 }
Пример #9
0
 public PushInfo(string code, string account, IPublisherEvents callback)
 {
     this.Code = code;
     this.Account = account;
     this.Callback = callback;
 }