我正在开发一个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意味着什么。我在这做错了什么。