/**
* ConnectableObservable constructor.
* @param Observable $source
* @param \Rx\Subject\Subject $subject
* @param SchedulerInterface $scheduler
*/
public function __construct(Observable $source, Subject $subject = null, SchedulerInterface $scheduler = null)
{
$this->sourceObservable = $source->asObservable();
$this->subject = $subject ?: new Subject();
$this->hasSubscription = false;
$this->scheduler = $scheduler;
}