public Task Subscribe(Subscriber subscriber, MessageType messageType, ContextBag context) { var dict = storage.GetOrAdd(messageType, type => new ConcurrentDictionary<string, Subscriber>(StringComparer.OrdinalIgnoreCase)); dict.AddOrUpdate(subscriber.TransportAddress, _ => subscriber, (_, __) => subscriber); return TaskEx.CompletedTask; }
public Task Unsubscribe(Subscriber subscriber, MessageType messageType, ContextBag context) { ConcurrentDictionary<string, Subscriber> dict; if (storage.TryGetValue(messageType, out dict)) { Subscriber _; dict.TryRemove(subscriber.TransportAddress, out _); } return TaskEx.CompletedTask; }