本文介绍了用PHP苹果推送通知,iPhone没有收到,什么可能性导致这种情况发生?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这里,是我的Linux服务器上的编码。
$ CTX = stream_context_create();
stream_context_set_option($ CTX,SSL,的local_cert','APNS-prod.pem');
$ apnsConnection =在stream_socket_client('SSL://gateway.push.apple.com:2195',$犯错,$ errstr,60,STREAM_CLIENT_CONNECT,$ CTX);$ deviceToken =XXXX; //没有空间
$消息=一个新的问题已发布;$身体=阵列();
$身体['APS'] =阵列('警报'=> $消息);
$徽章= 1;
$声音= 1;如果($徽章)
{$体['APS'] ['徽章'] = $徽章;}如果($声音)
{$体['APS'] ['音'] = $声音;}$有效载荷= json_en code($体);
$味精= CHR(0)。包(N,32)。包(H *',str_replace函数('','',$ deviceToken))。包(N的strlen($有效载荷))。 $有效载荷;
回声$有效载荷;FWRITE($ apnsConnection,$味精);
FCLOSE($ apnsConnection);
解决方案
这种事,如果你的主机服务器无法打开端口:2195或2196
here, is my coding on linux server.
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'apns-prod.pem');
$apnsConnection = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
$deviceToken = "XXXX"; //no space
$message = "A new question has been posted";
$body = array();
$body['aps'] = array('alert' => $message);
$badge = 1;
$sound = 1;
if($badge)
{$body['aps']['badge'] = $badge;}
if($sound)
{$body['aps']['sound'] = $sound;}
$payload = json_encode($body);
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
echo $payload;
fwrite($apnsConnection, $msg);
fclose($apnsConnection);
解决方案
It happens, if your hosting server doesn't open the port:2195 or 2196.
这篇关于用PHP苹果推送通知,iPhone没有收到,什么可能性导致这种情况发生?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!