2016-04-16 15 views
0

Situation

Am versuchtWie arbeiten RethinkDB, Laravel und Ratchet zusammen?

  • RethinkDB
  • Laravel 5
  • Ratchet

ein Echtzeit-Chat Spielzeug App mit dem folgenden Technologie-Stack zu bauen Was ich wahrnehmen zu sein die konzeptionelle Situation

enter image description here

Die grünen Pfeile repräsentieren den Echtzeitaustausch von Daten.

Die schwarzen Pfeile stellen andere Nicht-Echtzeitanforderungen und den Datenaustausch dar.

Meine Frage

Ich frage mich, ob mein Verständnis für die Durchführung von Chat des Technologie-Stack verwenden, korrekt ist, basierend auf dem Diagramm?

Wenn es Ungenauigkeiten gibt, was wären sie?

Antwort

0

Ihre Interpretation scheint korrekt zu sein, obwohl ich nicht vorschlagen würde, den Websocket zum Senden von Daten zu verwenden, sondern nur Live-Daten an alle Abonnenten eines Kanals zu verteilen. Um dies zu tun, erhalten Sie eine API (vorzugsweise) erhalten neue Beiträge/Chats/Benutzer. Und verwenden Sie einen Push-Server, um die empfangenen Daten an den Socket zu senden. Ein Push-Server ist nur ein zwischen der App und Websocket, die PHP (Laravel) Zugriff auf die Steckdose leicht ermöglicht.

Edit: auszuarbeiten enter image description here

erklären Ihnen dies erneut zu versuchen. Alle Clients hören den WebScoket Server. Dies ist eine Verbindung, die passiv ist und nur Nachrichten vom Socket empfängt, je nachdem, welche Themen/Subskriptionen sie haben.

Wenn jemand eine Nachricht senden möchte (im Falle einer Chat-Anwendung), sendet er sie an eine API, um zu prüfen, ob der richtige Benutzer sie gesendet hat, vielleicht sogar apikeys oder andere Sicherheitsmittel.

Sobald die Nachricht in der API empfangen wird, möchte die API sie an alle Listening-Clients für diesen Chat-Raum/Thema/Abonnement verteilen.

Die Nachricht wird also an den Pushserver weitergeleitet, der zwischen dem Backend (API, Controller) und dem WebSocket (Subskriptionen, Themen) liegt.

Der Pushserver leitet die Nachricht anschließend an den WebSocket weiter und dann verteilt der WebSocket die Nachricht an die richtigen Listener.

Vorteile der Verwendung eines API:

  • Sicherheit
  • Skalierbarkeit
+0

ich immer noch nicht ganz "grok", was Sie sagen. kann helfen, indem Sie einige Diagramme zeichnen? –