/// <summary>取消订阅</summary> /// <param name="user">订阅者</param> /// <param name="userState">订阅者</param> /// <returns></returns> public Boolean Remove(String user, Object userState) { //if (!Consumers.Remove(user)) return false; if (!Consumers.TryGetValue(user, out var cs)) { return(false); } var rs = cs.Remove(userState); // 如果没有订阅者,则删除消费者 if (rs && cs.Subscribers.IsEmpty) { Consumers.Remove(user); } return(rs); }