public void Unsubscribe(IUnsubscribeRequest <TMessage> request, long subscriptionId) { lock (mLock) { if (!mSubscriptionIdToTopic.TryGetValue(subscriptionId, out WampRawTopic <TMessage> rawTopic)) { throw new WampException(WampErrors.NoSuchSubscription, "subscriptionId: " + subscriptionId); } rawTopic.Unsubscribe(request); } }
public void Unsubscribe(IUnsubscribeRequest <TMessage> request) { IWampClientProxy <TMessage> client = request.Client; if (mSubscriberBook.Unsubscribe(client)) { this.RaiseSubscriptionRemoving(client.Session); request.Unsubscribed(); this.RaiseSubscriptionRemoved(client.Session); if (!this.HasSubscribers) { this.RaiseTopicEmpty(); } } }