APNS:如何在发送后获得错误响应?

时间:2012-11-30 17:20:20

标签: php push-notification apple-push-notifications push

我想用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);

1 个答案:

答案 0 :(得分:0)

令牌无效,并不意味着它是#34; NO EXIST TOKEN",这意味着令牌在沙箱环境中,您发送沙箱令牌进行生产,导致无效令牌