Exemplo n.º 1
0
        public static MessagingSubscription Subscribe(String channel, String selector, IRTCallback callback)
        {
            MessagingSubscription messagingSubscription = Subscribe(channel, callback);

            messagingSubscription.PutOption("selector", selector);
            return(messagingSubscription);
        }
Exemplo n.º 2
0
        private void RemoveSubscription(MessagingSubscription messagingSubscription, int index)
        {
            messagingCallbacks.RemoveAt(index);

            if (IsJoined())
            {
                rtClient.Unsubscribe(messagingSubscription.Id);
            }
        }
Exemplo n.º 3
0
        private void AddUserListener(IRTCallback rtCallback)
        {
            MessagingSubscription subscription = MessagingSubscription.UserStatus(channelName, rtCallback);

            messagingCallbacks.Add(subscription);

            if (IsJoined())
            {
                rtClient.Subscribe(subscription);
            }
        }
Exemplo n.º 4
0
        public void RemoveUserStatusListeners()
        {
            for (int i = messagingCallbacks.Count - 1; i >= 0; i--)
            {
                MessagingSubscription messagingSubscription = messagingCallbacks[i];

                if (messagingSubscription.SubscriptionName == SubscriptionNames.PUB_SUB_USERS)
                {
                    RemoveSubscription(messagingSubscription, i);
                }
            }
        }
Exemplo n.º 5
0
        public static MessagingSubscription UserStatus(String channel, IRTCallback callback)
        {
            if (channel == null || channel.Length == 0)
            {
                throw CreateChannelNullException();
            }

            MessagingSubscription messagingSubscription = new MessagingSubscription(SubscriptionNames.PUB_SUB_USERS, callback);

            messagingSubscription.PutOption("channel", channel);

            return(messagingSubscription);
        }
Exemplo n.º 6
0
        private void RemoveMessageListener(Delegate @delegate)
        {
            for (int i = messagingCallbacks.Count - 1; i >= 0; i--)
            {
                MessagingSubscription messagingSubscription = messagingCallbacks[i];
                object callbackObject = messagingSubscription.Callback.UsersCallback;

                if (callbackObject is Delegate && ((Delegate)callbackObject) == @delegate)
                {
                    RemoveSubscription(messagingSubscription, i);
                }
            }
        }
Exemplo n.º 7
0
        public void RemoveMessageListeners(string selector)
        {
            for (int i = messagingCallbacks.Count - 1; i >= 0; i--)
            {
                MessagingSubscription messagingSubscription = messagingCallbacks[i];
                object callbackObject = messagingSubscription.Callback.UsersCallback;

                if (messagingSubscription.Selector != null && messagingSubscription.Selector.Equals(selector))
                {
                    RemoveSubscription(messagingSubscription, i);
                }
            }
        }
Exemplo n.º 8
0
        public void RemoveMessageListeners <T>(string selector, MessageReceived <T> callback)
        {
            for (int i = messagingCallbacks.Count - 1; i >= 0; i--)
            {
                MessagingSubscription messagingSubscription = messagingCallbacks[i];
                object callbackObject = messagingSubscription.Callback.UsersCallback;

                if ((messagingSubscription.Selector == null || messagingSubscription.Selector.Equals(selector)) &&
                    (callback == null || callbackObject.Equals(callback)))
                {
                    RemoveSubscription(messagingSubscription, i);
                }
            }
        }
Exemplo n.º 9
0
        private void AddMessageListener(String selector, IRTCallback rtCallback)
        {
            MessagingSubscription subscription;

            if (selector == null)
            {
                subscription = MessagingSubscription.Subscribe(channelName, rtCallback);
            }
            else
            {
                subscription = MessagingSubscription.Subscribe(channelName, selector, rtCallback);
            }

            messagingCallbacks.Add(subscription);

            if (IsJoined())
            {
                rtClient.Subscribe(subscription);
            }
        }