質問

受信者のiPhoneがオフの場合、Apple Push Notification Serverから非常に奇妙な動作が見られます。私のシナリオは次のとおりです。

  

-プッシュ通知AをAppleに送信します。数秒以内に、プッシュ通知ポップアップがiPhoneで期待どおりに表示されます。
  -前の通知をキャンセルするために空の通知をAppleに送信します(約10秒後には前の通知は無意味です。だから私はそれを取り除きたいです)。 iPhoneには何も表示されません。
  -iPhoneを完全にオフにします(スリープ状態ではなく、電源が切れます)。
  -プッシュ通知BをAppleに送信します。 10秒待ちます。
  -前の通知をキャンセルするには、空の通知をAppleに送信します。 10秒待ちます。
  -プッシュ通知CをAppleに送信します。 10秒待ちます。
  -前の通知をキャンセルするには、空の通知をAppleに送信します。 30秒待ちます。
  -iPhoneをオンにします。
  -約60秒後、プッシュ通知ポップアップがiPhoneの通知Bに表示されます。
  -通知Cは届かないようです。

これは非常に奇妙です! Appleのドキュメントを読んで、最新のプッシュ通知のみが送信されると予想していました。空白の通知が送信されることを期待していましたが、最も古い未送信のプッシュ通知が送信されることを期待していませんでした!

Appleのドキュメントによると:

  

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

この行動を見た人はいますか?何らかのタイミングウィンドウのバグにぶつかっただけですか?何が起こるべきですか?

更新
-プッシュ通知を送信する前に電話の電源をオフにして5〜15分待機した場合、この問題は発生しません。この場合、電話をオンにしたときに通知ポップアップは表示されませんが、これはAppleが通知をドロップした結果なのか、それらの「キュー」が正しく機能する(つまり、代わりに最新の空の通知を保持する)最初のポップアップのポップアップ)。
-APNsLogging.mobileconfigをiPhoneに追加して、どの通知が届いたかを確認します。
-Wi-Fiをオフにしても結果は変わらないようです。
-このシナリオについて、Appleにバグレポートを提出しました。

役に立ちましたか?

解決 2

記録のために、10月29日にAppleにバグID#7349660としてこれを提出しました( https://bugreport.apple .com )、10月30日に必要な追加の診断を提供しました。

それ以降、Appleからの応答はありません。したがって、これはおそらく優先順位リストで低いと思われます。最初にこの質問を開きました)。

他のヒント

セルラーネットワークとWiFiネットワークの両方でこの動作を確認することをお勧めします。特に複数のNATルーターが関係している場合、つまり、メインルーターとフロアごとのWiFiルーターがある大企業、または複数のルーターを使用している家庭では、電話がWiFiにあるとき、奇妙な動作がたくさんあります。範囲を拡張します。しかし、セル上ではかなり安定しています。

また、10秒のキャンセル遅延により、カットが近すぎる可能性があります。それらはタイムリーな配信を保証するものではなく、プッシュリクエストをキューから取り出した後、実稼働サーバーで最大3分の遅延が発生しました。システムの混雑を計画することもできます。

どちらの方法でも、bugreporterレポートに値するように思えます。

Appleのドキュメントでは、プッシュ通知を最大30日間キャッシュできると言われています。そのため、iphoneのスイッチをオンにするとプッシュされます(相互接続している場合)

CがBの後に送信されたのはどのくらいですか?何らかの種類のタイムアウトサーバー側があるバグのようであり、Cがすぐに送信された場合、誤ってBを保持します...

適切なテスト例がある場合(およびこれが適切なテストのように思える場合)、これについてレーダーレポートを提出します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top