用PHP苹果推送通知,iPhone没有收到,什么可能性导致这种情况发生? [英] Apple Push Notification with PHP, iphone does not recieve, what does possibility cause this happen?

查看:209
本文介绍了用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没有收到,什么可能性导致这种情况发生?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆