解析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 cli 方式 在crotab中运行解决
Feb 08 PHP
PHP的加密方式及原理
Jun 14 PHP
php导入模块文件分享
Mar 17 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
php 浮点数比较方法详解
May 05 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
PHP实现百度人脸识别
May 06 PHP
php集成开发环境详解
Sep 24 PHP
laravel清除视图缓存的代码
Oct 23 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
2020最新CPU的性能排名
2020/04/02 数码科技
php Imagick获取图片RGB颜色值
2014/07/28 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
深入理解React高阶组件
2017/09/28 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
python实现车牌识别的示例代码
2019/08/05 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Python装饰器用法与知识点小结
2020/03/09 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
工程概预算专业毕业生求职信
2013/10/04 职场文书
行政助理的职责
2013/11/14 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
管理提升方案
2014/06/04 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
长城导游词
2015/01/30 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
专家推荐信怎么写
2015/03/25 职场文书
2015年防汛工作总结
2015/05/15 职场文书
信用卡催款律师函
2015/05/27 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang