2016-08-05 8 views
1

Firebase Cloud Messaging documentationによると、アプリケーションサーバーがアップストリームメッセージに「delivery_receipt_requested」フィールドを設定すると、アプリが領収書を確認したときに配信確認を受信します。ただし、アプリケーションサーバーがXMPP接続サーバーに接続されている場合にのみ動作します。 HTTP接続サーバーでは機能しません。FCMでdelivery_receipt_requestedの有無にかかわらず受信したメッセージに対して、アプリが異なる動作をする必要がありますか?

GCM/FCMの新機能で、まだサーバーをセットアップしていません。したがって、Firebaseコンソールを使用して通知の受信確認をアプリでテストしています。

私の質問は以下のとおりです。

  1. "delivery_receipt_requested"フィールドをアプリに送信するか、接続サーバー自体がそれを消費しますか。
  2. 通知でこのフィールドを受け取った場合は、このフィールドを含まない通知とは異なる動作をする必要があります。

このフィールドを使用するドキュメントまたは実装例への参照は、高く評価されます。

ありがとうございます。

答えて

3

"delivery_receipt_requested"フィールドをアプリに送信するか、接続サーバー自体がそれを消費しますか。

Google PlayサービスにインストールされているFCMクライアントがこれを処理します。 アプリケーションでは何も気付かないでしょう。

通知でこのフィールドを受け取った場合は、このフィールドを含まない通知とは異なる動作をする必要があります。

アプリケーションは何もする必要はありません。実際には、アプリはこのフィールドを受信しません。


長い説明

  1. delivery_receiptは正確にアプリがメッセージを受け取った確認ではなく、それは、デバイスがメッセージを受信確認です。メッセージがアプリケーションに渡されている間、デバイスがクラッシュしたり、バッテリがなくなっている可能性があります。
  2. この機能はアプリケーションの外部で実装されています。したがって、アプリケーションはこのメッセージに配信確認が必要であることを意識する必要はありません。
  3. メッセージを受け取る方法でバックエンドを呼び出すことで、より正確な「アプリケーション配信確認」を実装できます。
    (http:http://mywebsite.com/confirm-msg-processed-successfully.php?id=133へのコール)
関連する問題