2011-07-28 11 views
1

PHP付きiPhoneアプリケーションのプッシュ通知(APNS、Apple Push Notification Service)をコーディングしました。デバイスからアプリが削除されていない間はすべて正常に動作しています。私はアップルのフィードバックサービスを使用して、削除されたデバイスを入手します。私がデバイスを取得した場合、私のデータベースにINACTIVEとマークして、それらのデバイスにそれ以上のプッシュ通知を送信しません。Appleフィードバックサービス(APNS)が遅い

問題はAppleが遅いということです。あなたのデバイスからアプリケーションを削除すると、Appleにリクエストが送信され、フィードバックサービスを使用してデバイスが収集されます。

PHP Warning: fwrite(): SSL: Broken pipe in apns.php on line 155

私のフィードバックサービスのスクリプトは5分ごとに実行されますが、アップルからのアップデート:しかし、Appleは、私は次のエラーを取得するので、私は非アクティブのデバイスにプッシュ通知を送信することはできませんので、すぐに不活性化されたデバイスを転送していません10〜15分ごとに来る。 10-15分以内にプッシュ通知を送信すると、データベースにデバイスがまだACTIVEとマークされており、AppleサーバーでデバイスがINACTIVEとマークされているため、上記のエラーが表示されます。

フィードバックサービスまたはプッシュサービスに接続するのに問題はありませんが、フィードバックサービスからデバイスを取得するとは限りません。

挨拶し、 TheFox

+0

どちらの場合も、Appleサポートにお問い合わせください。それについて何をすべきですか? – hakre

答えて

1

Apple.comのデベロッパ・フォーラム(https://devforums.apple.com/thread/114446)からの回答:

あなたのサーバが切断を検出し、必要に応じて再接続する必要があります。ネットワーキングが関与しているときは「インスタント」ではありません。常にレイテンシがあり、コードでそのことを考慮する必要があります。 また、拡張バイナリインターフェイスを使用して、返信応答を確認し、接続が切断された理由を知ることもできます。アップルのコントロールの外にあるTCPキープアライブの結果、接続を切断することもできます。

サーバーが切断を検出した場合、すべてのデバイスをINACTIVEに設定します。

+0

私はまだあなたがやっていることを実際に得ることはできません。私は数千回のプッシュ通知で同じエラーが発生しています。どのように修正しましたか? –

+1

アップル社は、デバイスに問題が発生した場合、接続を終了します。エラーメッセージやそのようなものはありません。あるデバイスでSSLエラーが発生した場合は、このデバイスがもうアクティブではないとみなします。したがって、(1)非アクティブにし、(2)Appleサーバーに再接続する必要があります。プッシュ通知を何千通も送信しているうちに、何百ものSSLエラー(再接続)が発生する可能性があります。私は知っている、このシステムは完璧ではありません。そして、私はなぜAppleがそれほど手に負えないのか分からない。 – TheFox

+0

私はSSLエラーを与えるIDを取得できました。現在の状況では、再接続してそのIDにメッセージを送信しようとしています。 SLLエラーが発生したときにそのIDをスキップしてデータベースから削除すると想定するのは安全でしょうか? –

関連する問題