public IWampRegistrationSubscriptionToken Subscribe(IWampRawTopicRouterSubscriber subscriber, string topicUri, SubscribeOptions options)
        {
            options = options.WithDefaults();

            MatchTopicContainer topicContainer = GetInnerContainer(options);

            return(topicContainer.Subscribe(subscriber, topicUri, options));
        }
示例#2
0
        public void Subscribe(IWampSubscriber subscriber, long requestId, SubscribeOptions options, string topicUri)
        {
            try
            {
                options = options.WithDefaults();

                ValidateSubscribeUri(topicUri, options.Match);

                SubscribeRequest <TMessage> subscribeRequest =
                    new SubscribeRequest <TMessage>(subscriber, requestId);

                mRawTopicContainer.Subscribe(subscribeRequest, options, topicUri);
            }
            catch (WampException ex)
            {
                mLogger.ErrorFormat(ex,
                                    "Failed subscribing to topic '{TopicUri}'. Subscription request id: {RequestId}",
                                    topicUri, requestId);

                subscriber.SubscribeError(requestId, ex);
            }
        }