Entérate de todos los anuncios de Firebase Summit y descubre cómo Firebase puede ayudarte a acelerar el desarrollo de las apps y a ejecutarlas con confianza. Más información

Enviar mensajes ascendentes desde una aplicación cliente de Unity

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Si su servidor de aplicaciones implementa el protocolo del servidor de conexión XMPP , puede recibir mensajes ascendentes desde el dispositivo de un usuario a la nube. Para iniciar un mensaje ascendente, la aplicación cliente envía una solicitud que contiene lo siguiente:

  • La dirección del servidor de la aplicación receptora con el formato SENDER_ID@fcm.googleapis.com .
  • Un ID de mensaje que debe ser único para cada ID de remitente .
  • Los datos del mensaje que comprenden los pares clave-valor de la carga útil del mensaje.

Cuando recibe estos datos, FCM crea una estrofa XMPP para enviar al servidor de aplicaciones, agregando información adicional sobre el dispositivo y la aplicación de envío.

Enviar un mensaje ascendente desde una aplicación cliente de Unity

Para enviar mensajes ascendentes al servidor, una aplicación cliente de Unity redacta un mensaje y llama a Send como se muestra:

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

dónde:

  • message.To es la dirección del servidor de la aplicación receptora con el formato SENDER_ID@fcm.googleapis.com .

  • message.MessageId es un identificador de mensaje único. Todas las devoluciones de llamada del receptor de mensajes se identifican sobre la base de este ID de mensaje.

  • message.Data es un mapa de claves y valores como cadenas.

  • message.TimeToLive especifica cuánto tiempo (en segundos) se debe mantener el mensaje en el almacenamiento de FCM si el dispositivo está fuera de línea. Si FCM no puede entregar el mensaje antes de que se alcance este vencimiento, envía una notificación al cliente.

La biblioteca del cliente de FCM almacena en caché el mensaje en la aplicación del cliente y lo envía cuando el cliente tiene una conexión de servidor activa. Al recibir el mensaje, FCM lo envía al servidor de aplicaciones.

Reciba mensajes XMPP en el servidor de aplicaciones

Cuando FCM recibe una llamada de mensajería ascendente desde una aplicación cliente, genera la estrofa XMPP necesaria para enviar el mensaje ascendente. FCM agrega la category from los campos, y luego envía una estrofa como la siguiente al servidor de aplicaciones:

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

Envío de un mensaje ACK

En respuesta a un mensaje ascendente como el anterior, el servidor de aplicaciones debe usar la misma conexión para enviar un mensaje ACK que contenga el ID de mensaje único. Si FCM no recibe un ACK, puede volver a intentar enviar el mensaje al servidor de la aplicación.

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

Consulte la Referencia del servidor de conexión XMPP para obtener más información sobre la sintaxis de mensajes ascendentes.