Example #1
0
        protected override void DisposeObject(bool disposing)
        {
            if (disposing)
            {
                try
                {
                    currentSubscription?.Dispose();
                }
                catch (Exception ex)
                {
                    log.LogWarning(ex, w => w
                                   .WriteProperty("action", "DisposeEventReceiver")
                                   .WriteProperty("state", "Failed"));
                }

                try
                {
                    timer?.StopAsync().Wait();
                }
                catch (Exception ex)
                {
                    log.LogWarning(ex, w => w
                                   .WriteProperty("action", "DisposeEventReceiver")
                                   .WriteProperty("state", "Failed"));
                }
            }
        }
        void HandleUnsubscription(IEventSubscription subscription)
        {
            lock (subscription)
            {
                foreach (var channel in subscription.Channels ?? EventSubscription.UnknownChannel)
                {
                    UnRegisterSubscription(subscription, channel, ChannelSubcriptions);
                }
                UnRegisterSubscription(subscription, subscription.SubscriptionId, Subcriptions);
                UnRegisterSubscription(subscription, subscription.UserId, UserIdSubcriptions);
                UnRegisterSubscription(subscription, subscription.UserName, UserNameSubcriptions);
                UnRegisterSubscription(subscription, subscription.SessionId, SessionSubcriptions);

                if (OnUnsubscribe != null)
                {
                    OnUnsubscribe(subscription);
                }

                subscription.Dispose();
            }

            if (NotifyChannelOfSubscriptions && subscription.Channels != null && NotifyLeave != null)
            {
                NotifyLeave(subscription);
            }
        }
Example #3
0
        void HandleUnsubscription(IEventSubscription subscription)
        {
            lock (subscription)
            {
                UnRegisterSubscription(subscription, subscription.Channel ?? UnknownChannel, ChannelSubcriptions);
                UnRegisterSubscription(subscription, subscription.SubscriptionId, Subcriptions);
                UnRegisterSubscription(subscription, subscription.UserId, UserIdSubcriptions);
                UnRegisterSubscription(subscription, subscription.UserName, UserNameSubcriptions);
                UnRegisterSubscription(subscription, subscription.SessionId, SessionSubcriptions);

                if (OnUnsubscribe != null)
                {
                    OnUnsubscribe(subscription);
                }

                subscription.Dispose();
            }

            if (NotifyChannelOfSubscriptions && subscription.Channel != null)
            {
                NotifyChannel(subscription.Channel, "cmd.onLeave", subscription.Meta);
            }
        }