We have seen the hot and cold Observable in action throughout this book, although most of our examples have been for a cold Observable (even ones using Observable.interval()). As a matter of fact, there are a lot of subtleties in the hotness and coldness of an Observable, which we will look at in this chapter.
When you have more than one Observer, the default behavior is to create a separate stream for each one. This may or may not be desirable, and we need to be aware of when to force an Observable to be hot by multicasting using a ConnectableObservable. We got a brief introduction to the ConnectableObservable in Chapter 2, Observable and Observer, but we will look at it in greater detail – go the entire chain of the operators and learn about multicasting with ConnectableObservable. It will uncover some subtleties of ConnectableObservable...