本文部分内容引用于 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. 移除tabBar 重影

    -(void)viewWillLayoutSubviews{ [super viewWillLayoutSubviews]; for (UIView *child in self.tabBar.sub ...

  2. PostgreSQL配置文件--资源使用(除WAL外)

    2 资源使用(除WAL外) RESOURCE USAGE (except for WAL) 2.1 内存 Memory 2.1.1 shared_buffers 数字型 默认: shared_buff ...

  3. redis push/pop(List)的17条命令

    一.Blpop 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止.redis 127.0.0.1:6379> BLPOP LIST1 LIST2 .. ...

  4. 不区分大小写的Flask-SQLAlchemy查询

    全部转换为小写字符再进行比较 from sqlalchemy import func user = models.User.query.filter(func.lower(User.username) ...

  5. 安装notepad++ in ubuntu16.04

    一.安装notepad++ Ubuntu下的安装方法: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update ...

  6. [C++]豆知识(1条)

    术语: ctor:constructor,构造函数 dtor:destructor,析构函数 构造函数/析构函数 如果基类要利用多态,则dtor需要声明为virtual,这样在销毁对象时才可以正确调用 ...

  7. 如何让Firefox清除它记下的网站登录名和密码

  8. org.hibernate.exception.ConstraintViolationException: could not delete:

    转自:http://fireinwind.iteye.com/blog/848515 异常描述: org.hibernate.exception.ConstraintViolationExceptio ...

  9. 输入N,打印如图所看到的的三角形(例:N=3,N=4,N=5)1&lt;=N&lt;=26

    package demo; public class PrintDemo { public static void main(String[] args) { print(26); } private ...

  10. odoo8.0条形码改为js方式处理

    群里网友@上海-gavin 提供的odoo条形码处理,将原来的图片生成方式改为js处理方式. <div class="row text-center"> <div ...