private void Subscribe(string name, Action<ITextArgs> callback, Action<ITextArgs> confirmCallback, SubscriptionType subscriptionType, uint limit = 0) { ThrowIfPrimitive(); var subscription = new Subscription(name.ToLower(), callback, subscriptionType, limit, true); this.AddBinding(subscription); AddConfirmCallback(confirmCallback, subscription.Event); if (this.IsConnected) { Send(this.AsTextArgs(new XSubscriptions { Event = name.ToLower(), Confirm = true}, Constants.Events.PubSub.Subscribe), () => subscription.IsBound = true); } }
private void AddDefaultSubscriptions() { var onError = new Subscription(Constants.Events.OnError, Error) { IsBound = true }; this.AddBinding(onError); var onOpen = new Subscription(Constants.Events.Connections.Opened, Opened) { IsBound = true }; this.AddBinding(onOpen); }
private void Subscribe(string name, SubscriptionType subscriptionType, uint limit = 0) { ThrowIfPrimitive(); var subscription = new Subscription(name, subscriptionType, limit); this.AddBinding(subscription); if (this.IsConnected) { Send(this.AsTextArgs(new XSubscriptions { Event = name.ToLower() }, Constants.Events.PubSub.Subscribe), () => { subscription.IsBound = true; }); } }
private void AddConfirmCallback(Action<ITextArgs> confirmCallback, string @event) { var e = string.Format("__{0}", @event); if (this.GetBindings().Any(p => p.Event == e)) return; var confirm = new Subscription(e, confirmCallback); this.AddBinding(confirm); confirm.IsBound = this.IsConnected; }