public void Subscriber(Guid id) { IPublisherEvents callback = OperationContext.Current.GetCallbackChannel <IPublisherEvents>(); MainForm form = Application.OpenForms[0] as MainForm; form.AddSubscriber(id, callback); }
public void Unsubscribe(Guid id) { IPublisherEvents callback = OperationContext.Current.GetCallbackChannel <IPublisherEvents>(); PublisherForm f = Application.OpenForms[0] as PublisherForm; f.RemoveSubscriber(id, callback); }
public void RemoveSubscriber(Guid id, IPublisherEvents callback) { if (dic.ContainsKey(id)) { dic.Remove(id); lsbSubscribers.Items.Remove(id); } }
public void AddSubscriber(Guid id, IPublisherEvents callback) { if (!dic.ContainsKey(id)) { dic.Add(id, callback); lsbSubscribers.Items.Add(id); } }
public void RemoveSubscriber(Guid id, IPublisherEvents subscriber) { if (m_listCallbacks.ContainsKey(id)) { m_listCallbacks.Remove(id); this.lstSubscribers.Items.Remove(id); } }
public void AddSubscriber(Guid id, IPublisherEvents subscriber) { if (!m_listCallbacks.ContainsKey(id)) { m_listCallbacks.Add(id, subscriber); this.lstSubscribers.Items.Add(id); } }
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); }); } }
/// <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; }); }
public PushInfo(string code, string account, IPublisherEvents callback) { this.Code = code; this.Account = account; this.Callback = callback; }