解析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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP的PDO连接讲解
Jan 24 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 PHP
解决laravel session失效的问题
Oct 14 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
php 文件上传系统手记
2009/10/26 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
PHP实现微信对账单处理
2018/10/01 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
Python闭包函数定义与用法分析
2018/07/20 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
QML使用Python的函数过程解析
2019/09/26 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python selenium操作cookie的实现
2020/03/18 Python
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
师德师风建设方案
2014/05/08 职场文书
电工技术比武方案
2014/05/11 职场文书
2014年技术员工作总结
2014/11/18 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python