有一种推送通知服务,可以将消息从Web服务器发送到应用程序设备。该应用程序已实现onMessageReceived()方法。但是,并非所有消息都已发送,而且我已经在某处读到了 delivery_receipt_request 字段,当设置为 true 然后(FCM)时,回复提及该消息的服务器无论是否交付。我想知道如果邮件传递给我的发件人的旁边代码,如何从应用程序中捕获该回复。
答案 0 :(得分:0)
选项1:通过XMPP
您需要在后端运行XMPP客户端。此客户端应使用您的项目参数连接到FCM。然后,您将能够处理FCM发送给您的邮件传递节。这是婴儿步骤:
client.on('stanza', function(stanza) {
//HERE IS WHERE YOU PROCESS THE STANZA
console.log('Please process me. I AM, the stanza: ', stanza.toString())
})
您将获得的消息传递的节将如下所示:
<message id="">
<gcm xmlns="google:mobile:data">
{
"category":"com.example.yourapp", // to know which app sent it
"data":
{
“message_status":"MESSAGE_SENT_TO_DEVICE",
“original_message_id”:”m-1366082849205”
“device_registration_id”: “REGISTRATION_ID”
},
"message_id":"dr2:m-1366082849205",
"message_type":"receipt",
"from":"gcm.googleapis.com"
}
</gcm>
</message>
目前只有CCS(XMPP)支持上游消息传递。把自己弄出来。
选项2:通过HTTP
现在,如果您决定使用FCM HTTP协议来发送消息,那么您必须解释在进行HTTP呼叫时收到的响应。您可以通过查看HTTP响应标头和响应正文中的错误来判断消息是否已发送。此处描述了响应的结构:https://firebase.google.com/docs/cloud-messaging/http-server-ref#interpret-downstream
再次,把自己打倒。