推送工作正常,问题是反馈是空的。我需要删除已经过期或状态无效的令牌。这就是我编写测试代码的问题,这是一个问题吗?]
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
$fp = stream_socket_client('ssl://feedback.sandbox.push.apple.com:2196', $error, $errorString, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
return;
}
while ($devcon = fread($fp,38)) {
$arr = unpack("H*", $devcon);
$rawhex = trim(implode("", $arr));
$feedbackTime = hexdec(substr($rawhex, 0, 8));
$feedbackDate = date('Y-m-d H:i', $feedbackTime);
$feedbackLen = hexdec(substr($rawhex, 8, 4));
$feedbackDeviceToken = substr($rawhex, 12, 64);
}
fclose($fp);
答案 0 :(得分:2)
反馈服务并不总是返回数据。只有在需要报告失败的交货时,您才会获得数据。
不确定这是否属实,但我注意到反馈服务不适用于沙箱环境(至少我在沙箱检查时没有收到回复)