여러 subscriber를 조율하고 구독 하나를 서로 공유하는 흥미로운 방법중 하나이다.
LazyObservable (느긋한 연결) 이라 생각하면 된다.
마지막 subscriber가 떠났을 때 연결을 정리하며 정리 되는 시점까지 cache하는 방법도 다양하게 나와있다.
publish - Observable을 ConnectableObservable로 바꿔준다,publish() 선언만으로는 아직 대기 상태이며 emitting하지 않는다.
connect - ConnectableObservable상태에서 subscribe를 해도 정지상태에 있다가 connect()를 하는 순간 emiiting을 시작한다.
한번 connect()한 ConnectableObservable은 모든 아이템이 방출되면 구독하여도 반응이 오지 않는다. 다시 connect()를 해 주어야 한다.
share - share() == Observable.publish().connect()
refCount - ConnectableObservable을 다시 Observable처럼 동작하게 하며 가비지 컬렉션의 레퍼런스 참조 알고리즘 처럼 참조된 subscribe가 있으면 상태를 유지한다.
시간을 주어 일정 시간동안 유지 가능하게도 만든다. ex ) refCount(1L, TimeUnit.SECONDS)
replay
cache -