/// <summary> /// 发布数据 /// </summary> /// <param name="topic">主题</param> /// <param name="info">信息</param> /// <param name="isAsyn">是否异步发送</param> public void Publish(string topic, object info, bool isAsyn = false) { if (isAsyn) { TopicList.PublishAsyn(topic, info); } else { TopicList.Publish(topic, info); } }
/// <summary> /// 移除主题订阅 /// </summary> /// <param name="topic"></param> public void RemoveTopic(string topic) { lock (lock_obj) { Observer observer = null; if (dicTopic.TryGetValue(topic, out observer)) { dicTopic.Remove(topic); TopicList.RemoveSubscribe(topic, observer.Receive); } } }
/// <summary> /// 订阅主题 /// </summary> /// <param name="topic"></param> public void Subscrib(string topic) { //所有订阅必须方法同步 lock (lock_obj) { if (!dicTopic.ContainsKey(topic)) { Observer observer = new Observer(topic);//订阅该主题 TopicList.Subscribe(topic, observer.Receive); dicTopic[topic] = observer; observer.notifyHandler += Receive; } } }