<?PHP$cert = '/Applications/MAMP/htdocs/passesWebserver/certificates.pem';$ctx = stream_context_create();stream_context_set_option($ctx,'ssl','local_cert',$cert);stream_context_set_option($ctx,'verify_peer',false);$fp = stream_socket_clIEnt('ssl://Feedback.sandBox.push.apple.com:2196',$error,$errorString,60,STREAM_CLIENT_CONNECT,$ctx);// production server is ssl://Feedback.push.apple.com:2196if (!$fp) {error_log("Failed to connect Feedback server: $err $errstr",0);return;}else { error_log("Connection to Feedback server OK",0);} error_log("APNS Feedback results",0); while ($devcon = fread($fp,38)) { $arr = unpack("H*",$devcon); $rawhex = trim(implode("",$arr)); $FeedbackTime = hexdec(substr($rawhex,8)); $FeedbackDate = date('Y-m-d H:i',$FeedbackTime); $FeedbackLen = hexdec(substr($rawhex,8,4)); $FeedbackDevicetoken = substr($rawhex,12,64); error_log ("TIMESTAMP:" . $FeedbackDate,0); error_log ( "DEVICE ID:" . $FeedbackDevicetoken,0); }fclose($fp);?>解决方法 这应该工作.每次推送请求都不需要运行它.根据您更新的频率和设备数量,您可以设置每日或每周的cron作业.
$cert_file = '/path/to/combined/cert.pem';$cert_pw = 'top secret';$stream_context = stream_context_create();stream_context_set_option($stream_context,$cert_file);if (strlen($cert_pw)) stream_context_set_option($stream_context,'passphrase',$cert_pw);$apns_connection = stream_socket_clIEnt('Feedback.push.apple.com:2196',$error_code,$error_message,$stream_context);if($apns_connection === false) { apns_close_connection($apns_connection); error_log ("APNS Feedback Request Error: $error_code - $error_message",0);}$Feedback_tokens = array();while(!feof($apns_connection)) { $data = fread($apns_connection,38); if(strlen($data)) { $Feedback_tokens[] = unpack("N1timestamp/n1length/H*devtoken",$data); }}fclose($apns_connection);if (count($Feedback_tokens)) foreach ($Feedback_tokens as $k => $token) { // code to delete record from database }总结
以上是内存溢出为你收集整理的ios6 – 在发送推送通知时如何从APN获得反馈全部内容,希望文章能够帮你解决ios6 – 在发送推送通知时如何从APN获得反馈所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)