我想用PHP发送推送通知。
所以我设置了一些代码来发送它们。它实际上运行良好,但现在我必须做一些错误处理。
如果我是向Apple发布无效令牌,然后发送一些有效令牌,Apple不会将消息推送到有效令牌的设备。
因此,每次我发送有效负载以获取响应时,我都会检查Stream,如果有任何问题,我会告诉我。
$test = fwrite($this->fp, $payload);
if ($test != strlen($payload)) {
echo 'NOT ALL BYTES WRITTEN'; //This is just for debug
}
usleep(1000000); //Wait for Apple to respond.
$error_hex = fread($this->fp, 6);
if ($error_hex !== false && strlen($error_hex) == 6) {
$error = unpack('Ccommand/Cstatus_code/Nidentifier', $error_hex);
print_r($error);
} else {
echo 'NO HEX ERROR';
}
这总是输出" NO HEX ERROR",因此Apple没有回复错误。
为什么这不起作用? 流阻止已禁用。
stream_set_blocking($this->fp, 0);
答案 0 :(得分:0)
令牌无效,并不意味着它是#34; NO EXIST TOKEN",这意味着令牌在沙箱环境中,您发送沙箱令牌进行生产,导致无效令牌