2

我想用 PHP 发送推送通知。

所以我设置了一些代码来发送它们。它实际上运行良好,但现在我必须进行一些错误处理。

例如,如果我向 Apple 发布无效令牌,然后发送一些有效令牌,Apple 不会将消息推送到有效令牌的设备。

因此,每次发送有效负载以获取响应后,我都会检查流,如果有任何问题,我会告诉我。

$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);
4

1 回答 1

0

无效token,不代表“NO EXIST TOKEN”,表示token在沙箱环境中,你发送沙箱token进行生产,导致Invalid Token

于 2015-08-20T03:05:14.800 回答