Upstream-Nachrichten von einer Unity-Client-App senden

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

  • Die Adresse des empfangenden Anwendungsservers im Format SENDER_ID@fcm.googleapis.com.
  • Eine Nachrichten-ID, die für jede Absender-ID eindeutig sein muss.
  • Die Nachrichtendaten, die die Schlüssel/Wert-Paare der Nutzlast der Nachricht enthalten.

Wenn FCM diese Daten empfängt, erstellt es eine XMPP-Strophe, die an den App-Server gesendet wird. Dabei werden einige zusätzliche Informationen zum sendenden Gerät und zur App hinzugefügt.

Upstream-Nachricht von einer Unity-Client-App senden

Zum Senden von Nachrichten vor dem Server verfasst 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);

Dabei gilt:

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

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

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

  • message.TimeToLive gibt an, wie lang (in Sekunden) die Nachricht sein soll. werden in FCM Speicher aufbewahrt, wenn das Gerät offline ist. Wenn FCM die Nachricht nicht vor Ablauf dieser Frist zuzustellen kann, wird eine Benachrichtigung an den Client zurückgesendet.

Die FCM-Clientbibliothek speichert die Nachricht in der Client-App und sendet wenn der Client eine aktive Serververbindung hat. Wenn FCM die Nachricht empfängt, sendet sie sie an den App-Server.

XMPP-Nachrichten auf dem Anwendungsserver empfangen

Wenn FCM einen Upstream-Messaging-Aufruf von einer Client-App empfängt, generiert sie Die zum Senden der Upstream-Nachricht erforderliche XMPP-Stanza. FCM fügt die Felder category und from hinzu und sendet dann wie folgt an den Anwendungsserver an:

<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>

Bestätigungsnachricht senden

Als Antwort auf eine solche Upstream-Nachricht muss der App-Server dieselbe Verbindung verwenden, um eine ACK-Nachricht mit der eindeutigen Nachrichten-ID zu senden. Wenn FCM keine Bestätigung empfängt, kann ein neuer Sendeversuch unternommen werden die Nachricht an den Anwendungsserver.

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

Siehe Referenz zum XMPP-Verbindungsserver finden Sie weitere Informationen zur vorgelagerten Nachrichtensyntax.