public IDisposable Connect() { var connectionId = EventHandlerExtensions.OnConnected(Session, OperatorInfo); var disp = _connectableObservable.Connect(); return(Disposable.Create(() => { disp.Dispose(); Session.OnDisconnected(Event.Disconnect(connectionId)); })); }