解析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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
Linux中用PHP判断程序运行状态的2个方法
May 04 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 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文件读写操作之文件写入代码
2011/01/13 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
Javascript的比较汇总
2016/07/25 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
谈谈Python中的while循环语句
2019/03/10 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python线程中的同步问题及解决方法
2019/08/29 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
python实现学生通讯录管理系统
2021/02/25 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
机关道德讲堂实施方案
2014/03/15 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
JAVA API 实用类 String详解
2021/10/05 Java/Android
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android