1

プッシュ通知を送信した後、応答エラーをチェックするときに問題が発生しました。これが私の設定です:

PHPサーバーから、プッシュ通知を送信しています。これらの通知は拡張形式で送信されるため、Appleサーバーからエラー応答を受け取ることができます。例:エラー#7「無効なペイロードサイズ」。

エラーをチェックする方法は、ソケットの応答を読み取ることです。

const ERROR_RESPONSE_SIZE = 6;
$errorResponse = @fread($this->_apnsSocket, self::ERROR_RESPONSE_SIZE);

これは、実際のエラーがある場合に正常に機能します。私の問題は、エラーがない場合、「fread」呼び出しは何も返さず、永久にロードし続けるということです。

誰かがこれを手伝ってくれますか?ご協力いただきありがとうございます!

4

1 に答える 1

2

stream_set_blocking($this->_apnsSocket, 0);成功するとAppleは何も返送しないため、非ブロッキングモードである0に設定する必要がありますが、freadはブロッキングモードでデータを待機しています。

于 2011-05-05T19:36:05.690 に答える