Ich fange an, eine Anwendung zu erstellen. Es gibt viele Komponenten. Jeder von ihnen benötigt einen Teil der Daten von 1 WebSocket. Das Beispiel eines Objekts durch receiveing WebSocket:Der beste Weg, WebSocket-Daten zwischen mehreren Komponenten in Angular 2 zu teilen?
jeder Winkel 2-Komponenten benötigen 1 Feld aus Objekt receiveing. Ist es möglich, 1 Service zu machen, der sich mit webSocket verbindet, Daten empfängt und diese zwischen allen Komponenten teilt? Ich denke, es wird eine gute Lösung sein.
Jetzt bin ich mit dem nächsten Ansatz:
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);
};
}
Ich empfange Daten in einer Hauptkomponente und will, dass es zwischen den Komponenten Instanzen der Verwendung der Komponente teilen. Aber ich denke, es ist eine schlechte Idee und es gibt eine bessere Lösung.
Sie könnten den Dienst Ihres hinzufügen ' bootstrap() 'Befehl, wo Sie Ihre Provider einrichten. Dann erhalten Sie in Ihren Komponenten den Service über die Abhängigkeitsinjektion vom Konstruktor. Jetzt können Sie den Dienst in jeder Komponente verwenden, die Sie injizieren. – rinukkusu