2017-07-02 2 views
0

Ich habe gerade gelesen Facebook uses MQTT for chat, und wir wissen, MQTT Payload ist nur ein Strom von Bytes ohne Header-Optionen wie HTTP oder CoAP. This question antwortet, dass es für jeden Inhaltstyp ein Thema geben sollte.Wie Inhaltstyp in MQTT bekannt

Meine Frage ist; Es gibt eine Menge von MIME Typen und wie Facebook mit MQTT umgehen?

Beispiel: Es gibt ein Benutzer A und ein Benutzer B . Benutzer B sendet das JPG-Bild an A. Um den Inhaltstyp korrekt zu identifizieren, muss er unter der folgenden Adresse veröffentlicht werden: /inboxOfUserA/jpg. Wenn dies der Fall ist, dann wird es viele Themen für einen einzelnen Benutzer geben (da es viele Inhaltstypen gibt und was, wenn ein neuer Inhaltstyp in Zukunft kommt?).

Ich bekomme das nicht, es sollte etwas Teig Weg sein.

+0

Was passiert, wenn das nur eine einfache Textnachricht mit der URL an die auf amazon gespeicherte Datei ist, so ist immer noch da nur ein Thema für einen bestimmten Benutzer? Vielleicht enthält die Chat-Nachricht nicht nur Payload, sondern zusätzliche Felder in jeder Nachricht. Zum Beispiel könnte es "Typ" (Chat, Bild, Poke, ...), "Datum", "Payload", ... und alles als ein Strom von Bytes gesendet werden? –

+0

Die Frage, zu der Sie verlinken, sagt nicht, dass * ein * Thema pro Typ sein sollte, es ist nur eine Möglichkeit, dies zu tun. – hardillb

Antwort

1

Es ist wichtig, daran zu denken, dass MQTT nur ein Messaging-Transport ist, was vom Publisher zum Abonnenten übertragen wird, liegt vollständig in der Kontrolle des Systemdesigners.

Während eine MQTT Nachrichtennutzlast ist nur eine Ansammlung von Bytes, die Sie gibt es nichts zu stoppen Sie Ihre eigene Struktur innerhalb dieser Sammlung von Bytes Implementierung

z.B.

  • Eine Nachricht kann einen Header enthalten, der ein Feld ähnlich einem Mime-Typ enthält.
  • könnte eine Meldung ein XML-Dokument sein, das alle Arten von Metadaten enthalten kann darüber
  • Inhalt ist