web-dev-qa-db-ja.com

プッシュ通知は、削除されるまでどのくらいキューに入れられますか?

私はクライアント向けのAppleのプッシュ通知のデータを見つけようとしていたのですが、答えが見つからなかったのは、プッシュ通知が削除されるまでにオフラインデバイスのキューにとどまる時間です。

デバイスが非アクティブで電源がオフになっている可能性がある、たとえば2〜3か月などの長期間の場合があります。通知が自動的に削除される前に、オフラインデバイスに配信されるのを待って、通知が長引くと予想できる期間を知りたいだけです(これが何が起こるかを理解しています)。

21
NicholasTGD

公式の開発者向けドキュメントはこれについて明確ではありません。から developer.Apple.com

Appleプッシュ通知サービスには、ストアアンドフォワード機能を実行するデフォルトのサービス品質(QoS)コンポーネントが含まれています。 APNが通知を配信しようとしたが、デバイスがオフラインの場合、QoSは通知を保存します。デバイス上のアプリケーションごとに1つの通知のみを保持します。つまり、そのアプリケーションのプロバイダーから最後に受信した通知です。オフラインデバイスが後で再接続すると、QoSは保存された通知をデバイスに転送します。 QoSは、通知を削除する前に、限られた期間、通知を保持します。

しかし PCWorld によると、28日です。

アプリが実行されている場合は、すぐに通知を受け取ります。アプリが実行されていない場合、通知は電話で保持され、アプリの次回の起動時に消費されます。送信者が配信を試みたときにiPhoneがオフラインの場合、APNSは28日間通知を送信しようとします。

2009年には28日が真実だったかもしれませんが、今日が異なっていても驚かないでしょう。ドキュメントのあいまいさは、Appleがこのタイムアウト期間を意地悪に変更するための大きな言い訳です。

20
paislee

ドキュメントを調べてみると、「有効期限」パラメータを使用してAPNS通知のキューイングを制御できることがわかりました。

こちら 賞味期限の使い方の詳細説明です

apns-expiration

秒単位で表されるUNIXエポック日付(UTC)。このヘッダーは、通知が無効になり、破棄できる日付を識別します。

この値がゼロ以外の場合、APNは通知を保存し、少なくとも1回は配信を試みます。最初に通知を配信できない場合は、必要に応じて試行を繰り返します。値が0の場合、APNは通知をすぐに期限切れになるかのように扱い、通知を保存したり、再配信を試みたりしません。

3
avichalp