Ref Count Operator
Make a ConnectableObservable behave like a ordinary observable and automates the way you can connect to it. Internally it counts the subscriptions to the observable and subscribes (only once) to the source if the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it unsubscribes from the source. This way you can make sure that everything before the published refCount has only a single subscription independently of the number of subscribers to the target observable.
Note that using the
share operator is exactly the same as using the
publish operator (making the observable hot) and the
ref_count() operator in a sequence.
using Rocket subject = Subject(Int, scheduler = AsapScheduler()) source = from(1:5) |> multicast(subject) |> ref_count() actor1 = logger("1") actor2 = logger("2") subscription1 = subscribe!(source, actor1) subscription2 = subscribe!(source, actor2) unsubscribe!(subscription1) unsubscribe!(subscription2) ; # output  Data: 1  Data: 2  Data: 3  Data: 4  Data: 5  Completed  Completed