解析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网站提速三大“软”招
Oct 09 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
php反射类ReflectionClass用法分析
May 12 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
Linux系统下安装PHP7.3版本
Jun 26 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
实现“上一页”和“下一页按钮
2006/10/09 PHP
如何在PHP程序中防止盗链
2008/04/09 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
Prototype如何更新局部页面
2013/03/03 面试题
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
心理健康心得体会
2014/01/02 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
中专自我鉴定
2014/02/05 职场文书
商场消防演习方案
2014/02/12 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
个人借款担保书
2014/04/02 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
学历证明样本
2015/06/16 职场文书
推普标语口号大全
2015/12/26 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
Oracle 触发器trigger使用案例
2022/02/24 Oracle