¿La mejor manera de compartir datos de WebSocket entre múltiples componentes en Angular 2?

Empiezo a construir una aplicación. Hay muchos componentes. Cada uno de ellos necesita una parte de los datos de 1 webSocket. El ejemplo de un objeto receptor por webSocket:

Cada componente Angular 2 necesita 1 campo del objeto receptor. ¿Es posible hacer 1 servicio, que se conectará a webSocket, recibirá datos y los compartirá entre todos los componentes? Creo que será una buena solución.

Ahora estoy usando el siguiente enfoque:

getConfigCallback() {
    this.connectionSockets.telemetry = io(this.config.connections.telemetry);
    this.connectionSockets.controlFlow = new WebSocket(this.config.connections.controlFlow.server + ':' + this.config.connections.controlFlow.port);

    this.connectionSockets.telemetry.on('telemetry', function(data) {
        console.log(data);
    });

    this.connectionSockets.controlFlow.onopen = function(data) {
        console.log('onOpen', data);
    };

    this.connectionSockets.controlFlow.onmessage = function(data) {
        console.log('onMessage', data);
    };
}

Recibo datos en un componente principal y quiero compartirlos entre componentes usando instancias de componentes. Pero creo que es una mala idea y existe una mejor solución.

Respuestas a la pregunta(0)

Su respuesta a la pregunta