增强的Apple推送通知:提供商服务器上的响应错误

时间:2010-11-19 13:22:51

标签: php apple-push-notifications

我正在开发一个PHP项目,要求我在APNS服务器上发送警报通知。我使用了增强推送通知格式。但我没有收到APNS文件规定的回复。我得到三位数的响应,通常是133,132,154,138等。我最后得出的是状态标志,例如。 133是1,3,3。但现在我也收到了139.所以我怀疑我对答案的解释是错误的。但我没有得到错误的地方。重要的是,虽然我收到这些回复警报正在推动,我正在接收我的iPhone和iPad上的通知。

我的代码如下:

$payload['aps'] = array('alert' => $message, 'badge' => 1, 'sound' => 'default');

$apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195; // default port

$apnsCert = 'apns-dev.pem'; // APNS crtificate.

$passPhrase = '';

$streamContext = stream_context_create();

stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

stream_context_set_option($streamContext, 'ssl', 'passphrase', $passPhrase);

try{

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);

if (!$apns) {
    print "Failed to connect {$error} {$errorString}\n";
}
else {   
    // Sending the payload

    $apnsMessage = chr(0) . pack('n', 1) . pack('n', $nid) . pack('n', time() + 604800) . pack('n', 32) . pack('H*', str_replace(' ', '', $alert_device_token)) .  pack('n', strlen($payload)) . $payload;

    echo 'APNS Message: ' . $apnsMessage;

    $fwrite = fwrite($apns, $apnsMessage);

    echo 'APNS response: ' . $fwrite;

当执行此操作时,我在浏览器上打印了以下响应:

  

APNS消息: =ŸÂ òc6-U:õŸŠ¸Þ÷ćÚ0ßqšÊzÂífÕnZ `{“aps”:{“alert”:“您的EUR \ / USD卖出警报价已经达到!”,“徽章“:1,”声音“:”默认“}} APNS回复:139

任何人都可以告诉我这139意味着什么。我在这做错了什么。

1 个答案:

答案 0 :(得分:1)

回显的“139”是fwrite()的返回值。它是fwrite()

写入的字节数

请参阅:PHP: fwrite