V☆
проект на ангуляре, есть сервис «WS» предоставляющий доступ к проинициализированному сокету socket.io, остальные сервисы/компоненты декларируют зависимость от сервиса «WS», и напрямую подписываются на события сокета, и эмитят события в сервер (ws.socket.on(), ws.socket.emit())
и конечно же, никто не вызывает socket.off() при деструкции компонента
*не будем заострять внимание на том, что компонент работает с сокетом напрямую, а не через сервис поставщик подготовленных данных (дата-провайдер). это просто реальность, созданная кем-то до меня.
так вот, чтобы избавиться от подписки/отписки в компонентах/дата-провайдерах, я задумал сделать сервис-фабрику, которая будет возвращать мультикастовый observable (subject), который будет выдавать события только запрошенного ивента
при биндиге такого обзерва в шаблоне через async пайп, отписка происходит автоматически — https://angular.io/api/common/AsyncPipe