我去年成功设法实施了iPhone推送通知服务器(PHP);我不得不改变服务器,并且认为移动文件已经足够......我错了,因为修改通知不再发送了。没有错误,一切似乎都没问题,但没有收到通知。
以下是我的服务器代码;任何人都可以想到一个原因,或者找到问题的方法? (注意:$ deviceTokens var是正确的,包含设备令牌,我已经使用openssl命令成功测试了我的.pem证书。)
$payload['aps'] = array('alert' => 'notification!!', 'sound' => 'push.aif');
$payload = json_encode($payload);
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', 'libraries/ck_prod.pem');
$apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:' . 2195, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if($error) {
log_message('error', $errorString);
return;
}
log_message('debug', 'sending push notification...');
if($apns) {
foreach($deviceTokens as $deviceToken) {
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
}
fclose($apns);
} else {
log_message('error', 'error while sending push notification');
}
答案 0 :(得分:0)
好吧......也许我应该注意到我正在联系测试服务器(网关。沙箱 .push.apple.com)...有些日子很难... < / p>