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


Posted in PHP onJuly 01, 2013

准备工作
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 相关文章推荐
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
php实现统计邮件大小的方法
Aug 06 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
php实现无限级分类
Dec 24 PHP
深入探究PHP的多进程编程方法
Aug 18 PHP
PHP下载文件的函数实例代码
May 18 PHP
PHP引用返回用法示例
May 28 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
php实现每日签到功能
Nov 29 PHP
php ios推送(代码)
Jul 01 #PHP
PHP分页效率终结版(推荐)
Jul 01 #PHP
解析php防止form重复提交的方法
Jul 01 #PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 #PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 #PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 #PHP
深入解析php中的foreach问题
Jun 30 #PHP
You might like
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
PHP 与 js的通信(via ajax,json)
2010/11/16 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
小程序关于请求同步的总结
2019/05/05 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
python名片管理系统开发
2020/06/18 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
个人简历的自荐信
2013/10/23 职场文书
自主招生教师推荐信
2014/05/10 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
实习单位证明范例
2014/11/17 职场文书
2014年防汛工作总结
2014/12/08 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
redis数据结构之压缩列表
2022/03/21 Redis
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技