public IDisposable Subscribe(IWampRawTopicRouterSubscriber subscriber) { RegisterSubscriberEventsIfNeeded(subscriber); mSubscribers.Add(subscriber); IDisposable result = Disposable.Create(() => { mSubscribers.Remove(subscriber); OnSubscriberLeave(subscriber); }); return(result); }