Когда FCM получает восходящий вызов обмена сообщениями от клиентского приложения, он генерирует необходимый раздел XMPP для отправки восходящего сообщения. FCM добавляет поля category
и from
, а затем отправляет на сервер приложений следующий раздел:
<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>
Отправка сообщения ACK
В ответ на сообщение восходящего потока, подобное приведенному выше, сервер приложений должен использовать то же соединение для отправки сообщения ACK, содержащего уникальный идентификатор сообщения. Если FCM не получает ACK, он может повторить попытку отправки сообщения на сервер приложений.
<message id=""> <gcm xmlns="google:mobile:data"> { "to":"REGID", "message_id":"m-123" "message_type":"ack" } </gcm> </message>
Дополнительную информацию о синтаксисе восходящих сообщений см. в Справочнике по серверу соединений XMPP.