2016-10-31 6 views
0

Mit Angular2, was ist der beste Weg, um ein globales (socket.io) Objekt zwischen Komponenten zu teilen? Vor allem von der RootComponent zu einer ChildComponent.Global socket.io - Angular2

In meinem app.component.ts, speichere ich eine Buchse wie dieses

export class AppComponent { 
    socket: any; 

    constructor() { 

    this.socket = io('localhost:3000'); 
    } 
} 

Und dann versuchen Sie es durch App zu verweisen: ApplicationRef diese

export class FileListComponent { 
    app: any; 
    constructor(app:ApplicationRef) { 
     this.app = app; 
     this.app.socket; // <== 
    } 
} 

Aber this.app nicht einen direkten Verweis auf die Instanz haben und diese auch nicht finden konnten.

Gibt es eine Best Practice dafür?

Dank

+0

Mögliche Duplikat [Die beste Art und Weise WebSocket Daten zwischen mehreren Komponenten in Angular 2 zu teilen?] (Http: // stackoverflow.com/questions/37025837/the-best-way-to-share-websocket-data-between-multiple-components-in-angular-2) – echonax

Antwort

1

Der beste Weg, um die Buchse io zu initialisieren wäre ('localhost: 3000') in einem Shared Service (@Injectable) und als diesen Dienst zu injizieren, wo immer Sie wollen. Dies ist der beste Weg, um etwas zwischen den Komponenten des Teilens

Dieses leicht Sie erstellen könnte helfen: https://angular.io/docs/ts/latest/tutorial/toh-pt4.html