本文部分内容引用于 http://zxs19861202.iteye.com/blog/1532460

准备工作

1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken)

2.获取ck.pem文件(做手机端的给)

3.获取pass phrase(做手机端的给)

testpush.php文件

  1. <?php
  2. //手机注册应用返回唯一的deviceToken
  3. $deviceToken = '6ad7b13f b05e6137 a46a60ea 421e5016 4b701671 cc176f70 33bb9ef4 38a8aef9';
  4. //ck.pem通关密码
  5. $pass = 'jetson';
  6. //消息内容
  7. $message = 'A test message!';
  8. //badge我也不知是什么
  9. $badge = 4;
  10. //sound我也不知是什么(或许是推送消息到手机时的提示音)
  11. $sound = 'Duck.wav';
  12. //建设的通知有效载荷(即通知包含的一些信息)
  13. $body = array();
  14. $body['id'] = "4f94d38e7d9704f15c000055";
  15. $body['aps'] = array('alert' => $message);
  16. if ($badge)
  17. $body['aps']['badge'] = $badge;
  18. if ($sound)
  19. $body['aps']['sound'] = $sound;
  20. //把数组数据转换为json数据
  21. $payload = json_encode($body);
  22. echo strlen($payload),"\r\n";
  23. //下边的写法就是死写法了,一般不需要修改,
  24. //唯一要修改的就是:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址,ssl://gateway.push.apple.com:2195正式发布地址
  25. $ctx = stream_context_create();
  26. stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
  27. stream_context_set_option($ctx, 'ssl', 'passphrase', $pass);
  28. $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
  29. if (!$fp) {
  30. print "Failed to connect $err $errstr\n";
  31. return;
  32. }
  33. else {
  34. print "Connection OK\n<br/>";
  35. }
  36. // send message
  37. $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
  38. print "Sending message :" . $payload . "\n";
  39. fwrite($fp, $msg);
  40. fclose($fp);
  41. ?>

php做推送服务端实现ios消息推送的更多相关文章

  1. java服务端集成极光消息推送--详细开发步骤

    1.极光推送账号准备 要使用极光消息推送必须先在官方网站上注册账号,并添加应用. 产品介绍:https://docs.jiguang.cn/jpush/guideline/intro/ 注册开发者账号 ...

  2. (转)iOS消息推送机制的实现

    原:http://www.cnblogs.com/qq78292959/archive/2012/07/16/2593651.html iOS消息推送机制的实现 iOS消息推送的工作机制可以简单的用下 ...

  3. IOS 推送消息 php做推送服务端

    IOS推送消息是许多IOS应用都具备的功能,最近也在研究这个功能,参考了很多资料终于搞定了,下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPh ...

  4. 基于APNs最新HTTP/2接口实现iOS的高性能消息推送(服务端篇)

    1.前言 本文要分享的消息推送指的是当iOS端APP被关闭或者处于后台时,还能收到消息/信息/指令的能力. 这种在APP处于后台或关闭情况下的消息推送能力,通常在以下场景下非常有用: 1)IM即时通讯 ...

  5. 使用flask_socketio实现服务端向客户端定时推送

    websocket连接是客户端与服务器之间永久的双向通信通道,直到某方断开连接. 双向通道意味着在连接时,服务端随时可以发送消息给客户端,反之亦然,这在一些需要即时通讯的场景比如多人聊天室非常重要. ...

  6. Ios 消息推送

    手把手教你做iOS推送 http://www.cocoachina.com/industry/20130321/5862.html http://www.cnblogs.com/cdts_change ...

  7. [置顶] 手把手教你iOS消息推送证书生成以及Push消息

    iOS推送消息是许多iOS应用都具备的功能,今天在给应用加推送功能,在生成证书的过程中,发生了各种令人蛋痛的事.下面就把步骤拿出来分享下: iOS消息推送的工作机制可以简单的用下图来概括: Provi ...

  8. 了解iOS消息推送一文就够:史上最全iOS Push技术详解

    本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...

  9. ios消息推送机制原理与实现

    本文转载至 http://hi.baidu.com/yang_qi168/item/480304c542fd246489ad9e91 Push的原理: Push 的工作机制可以简单的概括为下图 图中, ...

随机推荐

  1. Asp.Net MVC part45 过滤器、模板页

    过滤器 使用方式自定义类继承自相应的类或接口,重写方法,作为特性使用在控制器类中重写方法 特性方式的使用注意:如果继承自接口需要让类实现FilterAttribute,才可以作为特性使用使用方式1:作 ...

  2. redis系列文章

    http://blog.csdn.net/liubenlong007/article/details/53690103

  3. 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 ------符号文件

    http://www.cnblogs.com/lyhabc/p/4184708.html

  4. tcpreplay 发包速率控制算法研究

    一.  序 1.1  tcpreplay历史 Tcpreplay 的作者是Aaron Turner,该项目开始于2000年,早期的功能是对tcpdump等抓包工具生成的网络包(即pcap文件)的回放, ...

  5. DOM系统学习-进阶

    DOM类型  Node类型: 常用类型: ​    ​    ​元素节点 ELEMENT_NODE ​    ​    ​属性节点 ATTRIBUTE_NODE ​    ​    ​文本节点 TEX ...

  6. CentOS7 rc.local开机开法启动

    CentOS 7添加开机启动服务/脚本 一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例):systemctl enable jenkins.s ...

  7. 安装完office2016 64位后,在安装visio时,报错,无法安装,

    安装环境要求: 系统要求:win8,win10等: office要求:sw(批量版)不能和cn(零售版).365版混装.-------重点注意事项 一定要注意批量版和零售版的区别,各版本之间绝对不允许 ...

  8. 配置SSH单向无密码访问

    服务器架构:系统:CentOS 6.5 x64主控端A:192.168.0.150远端主机B:192.168.0.151 原理: 利用ssh key生成公钥.私钥,密钥相当于一把钥匙,而公钥就相当于一 ...

  9. Actionscript 3 自定义 matedata

    metadata就是元数据 反应一个类本质的属性 可以通过describeType(obj)来得到反应该对象的xml 要自定义元数据,如[MyMatedata()] package {  public ...

  10. Rails时间扩展方法

    1.时间扩展方法: beginning_of_day,end_of_day等等 Time.now.end_of_day 2.ruby类型判断 is_a?(类型) 如:b.is_a?(Array)