public Task ConnectAsync()
        {
            ConnectingSubject.OnNext(Unit.Default);

            return(_listenerEvents.SelectMany(list => list)
                   .Concat(Observable.Defer(() => ReactiveLoggerService.ListenerEvents))
                   .TakeUntil(DisconnectingSubject)
                   .Select(e => {
                var message = (TraceEventMessage)e;
                Broadcast(_group).OnTraceEvent(message);
                BroadcastedSubject.OnNext(message);
                return Unit.Default;
            })
                   .DoNotComplete()
                   .ToTask());
        }