我遇到了 APNS 问题和一个“阻止”所有后续推送的无效令牌。这是 PHP 中的代码示例:
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $cert_path);
$fp = stream_socket_client($ssl_url, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $ctx);
stream_set_blocking($fp, 0);
stream_set_write_buffer($fp, 0);
if (!$fp) {
while ($message = nextMessage()) {
$msg = chr(0) . pack("n", 32) . pack('H*', $token) . pack("n", strlen($message)) . $message;
$fwrite = fwrite($fp, $msg);
}
fclose($fp);
}
此代码完美运行
- 使用一个有效令牌(设备收到消息)
- 带有许多有效令牌(所有设备都收到了消息)
此外,我不想为每条消息打开/关闭流套接字:它太慢了。
但是,如果使用了无效令牌,则所有跟随无效令牌的设备都不会收到该消息。反馈服务现在没有告诉我任何信息(我可能曾经收到过此令牌无效的信息)。执行“while (!feof($fp)) fread($fp);” 不给我信息。
你能帮我解决这个问题吗?
谢谢你。