Hi,
in an earlier discussion we came to the conclusion that for a connect/unconnect scenario in our app we would require the Multicast operator and a new type called ConnectableObservable, which is scheduled for 0.7:
https://github.com/Netflix/RxJava/issues/65
I've just about starting working more with the Subject class and found it immensely useful, since it allows you to implement a simplistic event bus in just a few lines of code. Looking at the implementation of Subject, I'm not sure I understand what Multicast would do that Subject doesn't already do? Subject acts like a connectable observable, since its onSubscribe function simply adds an observer to a list of observables, and unsubscribe does the reverse. In onNext, it then simply forwards to onNext of each observable.
Isn't this exactly the connect/disconnect behavior IConnectableObservable and Multicast solve too? If I want to receive callbacks, I subscribe to the subject *without* actually triggering that observable. I can unsubscribe and resubscribe at any point in time to stop/start receiving callbacks. I could therefore use Subject as a proxy between a long running observable that performs a job and produces results, and then forward these results to any potential observers by sending them to the Subject proxy.
Or am I misunderstanding the purpose of the two?
Thanks,
Matthias