Example #1
0
        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);
            }
        }
Example #2
0
        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();
                }
            }
        }