Senden Sie Upstream-Nachrichten von einer Unity-Client-App

Wenn Ihr App-Server das XMPP Connection Server- Protokoll implementiert, kann er Upstream-Nachrichten vom Gerät eines Benutzers an die Cloud empfangen. Um eine Upstream-Nachricht zu initiieren, sendet die Client-App eine Anfrage mit Folgendem:

  • Die Adresse des empfangenden App-Servers im Format SENDER_ID@fcm.googleapis.com .
  • Eine Nachrichten-ID, die für jede Absender-ID eindeutig sein sollte.
  • Die Nachrichtendaten umfassen die Schlüssel-Wert-Paare der Nutzdaten der Nachricht.

Wenn es diese Daten empfängt, erstellt FCM eine XMPP-Strophe, die an den App-Server gesendet wird, und fügt einige zusätzliche Informationen über das sendende Gerät und die App hinzu.

Senden Sie eine Upstream-Nachricht von einer Unity-Client-App

Um Nachrichten stromaufwärts an den Server zu senden, erstellt eine Unity-Client-App eine Nachricht und ruft Send wie gezeigt auf:

Firebase.Messaging.Message message;
message.To = SENDER_ID + "@fcm.googleapis.com";
message.MessageId = get_unique_message_id();
message.Data("my_message", "Hello World");
message.Data("my_action", "SAY HELLO");
message.TimeToLive = kTimetoLive;
Firebase.Messaging.FirebaseMessaging.Send(message);

Wo:

  • message.To ist die Adresse des empfangenden App-Servers im Format SENDER_ID@fcm.googleapis.com .

  • message.MessageId ist eine eindeutige Nachrichtenkennung. Alle Rückrufe der Nachrichtenempfänger werden anhand dieser Nachrichten-ID identifiziert.

  • message.Data ist eine Zuordnung von Schlüsseln und Werten als Zeichenfolgen.

  • message.TimeToLive gibt an, wie lange (in Sekunden) die Nachricht im FCM-Speicher aufbewahrt werden soll, wenn das Gerät offline ist. Wenn FCM die Nachricht nicht vor Ablauf dieser Frist zustellen kann, sendet es eine Benachrichtigung an den Client zurück.

Die FCM-Clientbibliothek speichert die Nachricht in der Client-App zwischen und sendet sie, wenn der Client über eine aktive Serververbindung verfügt. Beim Empfang der Nachricht sendet FCM sie an den App-Server.

Empfangen Sie XMPP-Nachrichten auf dem App-Server

Wenn FCM einen Upstream-Messaging-Aufruf von einer Client-App empfängt, generiert es die erforderliche XMPP-Zeilengruppe zum Senden der Upstream-Nachricht. FCM fügt die Felder category und „ from “ hinzu und sendet dann eine Zeilengruppe wie die folgende an den App-Server:

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "category":"com.example.yourapp", // to know which app sent it
      "data":
      {
          "hello":"world",
      },
      "message_id":"m-123",
      "from":"REGID"
  }
  </gcm>
</message>

Senden einer ACK-Nachricht

Als Reaktion auf eine Upstream-Nachricht wie oben muss der App-Server dieselbe Verbindung verwenden, um eine ACK-Nachricht mit der eindeutigen Nachrichten-ID zu senden. Wenn FCM keine Bestätigung erhält, versucht es möglicherweise erneut, die Nachricht an den App-Server zu senden.

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

Weitere Informationen zur Upstream-Nachrichtensyntax finden Sie in der XMPP-Verbindungsserver-Referenz .