protected virtual void RaiseSubscriptionAdded(RemoteWampTopicSubscriber subscriber, SubscribeOptions options) { EventHandler <WampSubscriptionAddEventArgs> handler = SubscriptionAdded; if (handler != null) { WampSubscriptionAddEventArgs args = GetAddEventArgs(subscriber, options); handler(this, args); } }
public void Subscribe(ISubscribeRequest <TMessage> request, SubscribeOptions options) { RemoteWampTopicSubscriber remoteSubscriber = new RemoteWampTopicSubscriber(this.SubscriptionId, request.Client as IWampSubscriber); IWampClientProxy <TMessage> client = request.Client; RemoteObserver observer = mSubscriberBook.Subscribe(client); if (!observer.IsOpen) { this.RaiseSubscriptionAdding(remoteSubscriber, options); } request.Subscribed(this.SubscriptionId); if (!observer.IsOpen) { observer.Open(); this.RaiseSubscriptionAdded(remoteSubscriber, options); } }
private WampSubscriptionAddEventArgs GetAddEventArgs(RemoteWampTopicSubscriber subscriber, SubscribeOptions options) { return(new WampSubscriptionAddEventArgs(subscriber, options)); }