解析php做推送服务端实现ios消息推送

 更新时间:2013年07月01日 09:18:17   作者:  
本篇文章是对php做推送服务端实现ios消息推送的方法进行了详细的分析介绍,需要的朋友参考下
准备工作
1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken)
2.获取ck.pem文件(做手机端的给)
3.获取pass phrase(做手机端的给)

testpush.php文件
复制代码 代码如下:

<?php
//手机注册应用返回唯一的deviceToken
$deviceToken = '6ad7b13f b05e6137 a46a60ea 421e5016 4b701671 cc176f70 33bb9ef4 38a8aef9';
//ck.pem通关密码
$pass = 'jetson';  
//消息内容
$message = 'A test message!';
//badge我也不知是什么
$badge = 4;
//sound我也不知是什么(或许是推送消息到手机时的提示音)
$sound = 'Duck.wav';
//建设的通知有效载荷(即通知包含的一些信息)
$body = array();
$body['id'] = "4f94d38e7d9704f15c000055";
$body['aps'] = array('alert' => $message);
if ($badge)
  $body['aps']['badge'] = $badge;
if ($sound)
  $body['aps']['sound'] = $sound;
//把数组数据转换为json数据
$payload = json_encode($body);
echo strlen($payload),"\r\n";
//下边的写法就是死写法了,一般不需要修改,
//唯一要修改的就是:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址,ssl://gateway.push.apple.com:2195正式发布地址
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem'); 
stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
    print "Failed to connect $err $errstr\n";
    return;
}
else {
   print "Connection OK\n<br/>";
}
// send message
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
print "Sending message :" . $payload . "\n"; 
fwrite($fp, $msg);
fclose($fp);
?>

相关文章

  • php中mt_rand()随机数函数用法

    php中mt_rand()随机数函数用法

    这篇文章主要介绍了php中mt_rand()随机数函数用法,较为详细的分析了mt_rand()随机数函数的常见用法,并结合数组遍历给出了数组随机输出的实例,需要的朋友可以参考下
    2014-11-11
  • PHP中有关长整数的一些操作教程

    PHP中有关长整数的一些操作教程

    这篇文章主要给大家介绍了关于PHP中有关长整数的一些操作教程,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • php按字符无乱码截取中文的方法

    php按字符无乱码截取中文的方法

    这篇文章主要介绍了php按字符无乱码截取中文的方法,涉及php操作中英文字符串的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • php清除和销毁session的方法分析

    php清除和销毁session的方法分析

    这篇文章主要介绍了php清除和销毁session的方法,实例分析了unset()与session_destroy()清除及销毁session的技巧,需要的朋友可以参考下
    2015-03-03
  • 部署PHP项目应该注意的几点事项分享

    部署PHP项目应该注意的几点事项分享

    这篇文章主要介绍了部署PHP项目应该注意的几点事项,有需要的朋友可以参考一下
    2013-12-12
  • php实现的Captcha验证码类实例

    php实现的Captcha验证码类实例

    这篇文章主要介绍了php实现的Captcha验证码类,实例展示了一个验证码类程序并附有用法演示实例,有着非常好的参考借鉴价值,需要的朋友可以参考下
    2014-09-09
  • 基于PHP开发中的安全防范知识详解

    基于PHP开发中的安全防范知识详解

    本篇文章是对PHP开发中的安全防范知识进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php防止sql注入简单分析

    php防止sql注入简单分析

    这篇文章主要介绍了php防止sql注入的方法,简单分析了通过stripslashes及mysql_real_escape_string函数进行字符转移处理的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • php外部执行命令函数用法小结

    php外部执行命令函数用法小结

    这篇文章主要介绍了php外部执行命令函数用法,结合实例形式分析了exec与system执行外部命令的相关使用技巧,需要的朋友可以参考下
    2016-10-10
  • php中static和const关键字用法分析

    php中static和const关键字用法分析

    这篇文章主要介绍了php中static和const关键字用法,结合实例形式分析了static和const关键字的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-12-12

最新评论