2016-07-29 13 views
1

Ich arbeite an React.js und socket.io. Meine Anwendung besteht aus mehreren Containern. Jeder Container hat Komponenten.Wo soll das Socket-Objekt in React Containern initialisiert werden?

Mein Behälter und Komponentenhierarchie

  • Armaturenbrett
  • Chat
    • ChatListItem
    • CustomerChatView

Also hier Armaturenbrett und Chat ein re zwei getrennte Container, die in separaten js-Dateien definiert sind. Ich möchte das websocket-Objekt zwischen Dashboard- und Chat-Nachrichten teilen, sodass das Dashboard dem Benutzer eine Warnmeldung anzeigen kann, wenn eine neue Chat-Nachricht im Chat-Container vorhanden ist.

Meine Frage ist, was der am besten geeignete Ort ist websocket zu initialisieren, so dass das gleiche Socket-Objekt kann in den beiden Behältern verwendet werden?

Ich bin mit socket.io JavaScript-Bibliothek

Antwort

1

Ich würde wahrscheinlich eine Wurzel app Container erstellen, die eine Aktion auf componentWillMount versenden können die Buchse und das Ergebnis in dem Speicher zu initialisieren. Dann können Sie es an einen anderen Behälter übergeben und wo immer nötig verwenden.

+0

Am zweiten Gedanken würde ich wahrscheinlich immer noch die Sockel in componentWillMount initialisieren, aber ich würde die Referenz in einem separaten eigenen Modul speichern, die vielleicht nur eine API, mit ihm zu arbeiten, ausgesetzt. Ihr Speicherstatus sollte serialisierbar sein, und das Speichern eines Sockets würde wahrscheinlich nicht so aussehen. – John