2016-06-26 6 views
0

Derzeit habe ich einen Singleton-Dienst (statisch-ish?), Der den Socket initialisiert und die Ereignisse festlegt. Der Dienst wird dann in jede der Komponenten injiziert, die Socket-Informationen verwenden.Angular2 + Socket.IO Implementation Best Practice

Meine Fragen sind:

  • diesen Sound wie Best Practice funktioniert?

  • Können Sie vorhersehen und Probleme?

  • Änderungen, die Sie vornehmen könnten?

Antwort

0

Ich habe nur in Winkel 1.5.x entwickelt, so dass ich bin mir nicht sicher, wie anwendbar ist meine Antwort, aber vielleicht können Sie die Gestaltungsprinzipien von ihr nehmen und es richtig anzuwenden, aber hier geht.

Mein erster Gedanke, wie ich das machen würde, ist dies. Ich würde einen Socket-Dienst einrichten, der Dinge wie das Initialisieren des Sockets behandelt, und würde auch zwei öffentliche Funktionen haben, um ein Ereignis zu binden und ein Ereignis zu lösen. Die Bindung würde einen Ereignisnamen nehmen, und eine Funktion, die einen Datenparameter hat, und wahrscheinlich eine ID-Rückkehr das Ereignis später zu lösen, wie folgt aus:

var bindingId = SocketService.bind('socketEventName', function(eventData){ 
    console.log(eventData); 
}); 

und dann können Sie zu lösen gerade tun, um diese

mit dieser Art von Layout bedeutet, dass Sie dann SocketService in andere Dienste aufnehmen können und die anderen Dienste die Antwort so handhaben können, wie sie benötigen, anstatt all diese Logik in Ihrem SocketService zu haben.