PushMeBaby source code:

http://stefan.hafeneger.name/download/PushMeBabySource.zip

后面是app delegate class 代码实现可以参考Urban Airship:

http://bitbucket.org/urbanairship/push_sample/src/tip/APNS/Classes/APNSAppDelegate.m#cl-136

服务器实现:
<?php
$deviceToken = $_GET['deviceToken'];
echo $_GET['deviceToken'];
// Passphrase for the private key (ck.pem file)
// $pass = '';

// Get the parameters from http get or from command line
$message = $_GET['message'] or $message = $argv[1] or $message = 'You got a message';
$badge = (int)$_GET['badge'] or $badge = (int)$argv[2];
$sound = $_GET['sound'] or $sound = $argv[3];

// Construct the notification payload
$body = array();
$body['aps'] = array('alert' => $message);
if ($badge)
$body['aps']['badge'] = $badge;
if ($sound)
$body['aps']['sound'] = $sound;

/* End of Configurable Items */

$ctx = stream_context_create();
/*stream_context_set_option($ctx, 'ssl','allow_self_signed', true);
stream_context_set_option($ctx, 'ssl', 'verify_peer',false);*/
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
// assume the private key passphase was removed.
// 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";
}

$payload = json_encode($body);
$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);
?>

其他相关文档:

iPhone Software Development: Apple Push Notification Service (APNS)
iPhone Software Development: APNS Client Development Certificate Available Now
OpenSSL support in PHP under MAMP | Barry Jaspan
Running a secure web server on your Leopard-powered Mac | Michael Gracie

如何实现iPhone Push Demo相关推荐

  1. 再论iPhone Push Notification

    感谢@lawrencelry邀请我参加CocoaHeads的活动,有幸碰到iCHM和Buddyfeed的作者@RobinLu.我们三个人讨论了一下苹果的Push,内容总结于下文. ---------- ...

  2. 华为开发者联盟安卓Push Demo无法接收消息的解决

    前段时间用了华为开发者联盟的Push服务,想自己在服务器端用华为Push的JAVA SDK来Push消息到安卓客户端上面,一直在编写服务器端,而且客户端用过华为的demo,之前是好了,能收到手动发出的 ...

  3. iphone push消息的原理

    第一部分:Push原理 (以下绝大多数内容参考自.图片来自iPhone OS Reference Library) 机制简介 Push的工作机制可以简单的概括为下图 图中, Provider是指某个i ...

  4. iphone push是什么

    第一部分:Push原理 (以下绝大多数内容参考自.图片来自iPhone OS Reference Library) 机制简介 Push 的工作机制可以简单的概括为下图 图中, Provider是指某个 ...

  5. 制作iPhone App demo video

    Keep it short Edit using iMovie Dub in appropriate audio Host it on YouTube or host it yourself usin ...

  6. 基于dwr2.0的Push推送技术详细解析以及实例

    DWR从2.0开始增加了push功能,也就是在异步传输的情况下可以从Web-Server端发送数据到 Browser. 我们知道,Web的访问机制天生是设计用来pull数据的,也就是只允许Browse ...

  7. 基于dwr2.0的Push推送技术详细解析以及实例(转)

    DWR从2.0开始增加了push功能,也就是在异步传输的情况下可以从Web-Server端发送数据到 Browser. 我们知道,Web的访问机制天生是设计用来pull数据的,也就是只允许Browse ...

  8. 3D Touch大法

    Demo同步更新到Swift2.3 本文出自: http://mokai.me/2016/09/3d-touch/ 3D Touch最先应用在Apple Watch上面,但叫Force Touch,后 ...

  9. next.js+react+typescript+antd+antd-mobile+axios+redux+sass react服务端渲染构建项目,从构建到发布,兼容pc+移动端

    简介:该教程兼容pc+移动端,如只需一端,可忽略兼容部分教程,根据需要运行的客户端构建项目 antd官网:https://ant.design/components/overview-cn/ antd ...

最新文章

  1. 计算机网络工程应用,计算机网络工程网络命令的应用
  2. ubuntu nginx php-fpm mysql_Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL
  3. 使用jQuery的attr方法来修改onclick值
  4. 园区医保和其他地方的医保的区别
  5. linuxpython升级3.5_linux升级python3.5到3.6
  6. 【热烈祝贺】我刊主编郑纬民教授荣获中国存储终身成就奖!
  7. linux 强行安装软件,Linux下强制不检测依赖安装VNC
  8. MySQL高可用方案-PXC环境部署记录
  9. python一般的基础代码-Python入门经典练习题
  10. oracle startup open ora 03113,Oracle 11g startup时报ORA-03113通信通道的文件结尾
  11. java查询三级树(三级目录)
  12. 计算机cad比例尺1 150,CAD图纸里面 1:50 和:1:100和1:150三个比例分别怎么换算...
  13. 2020年好用的BI应用排行榜
  14. 【动态规划】2只鸡蛋与100层塔问题(有详细说明和思路代码)
  15. 2022年茶艺师(初级)考试模拟100题及答案
  16. 数据分析之Matplotlib(二)折线图(plot)
  17. android混淆一步一步
  18. Simscape - 关节添加摩擦力
  19. Unity--使用鼠标操纵摄像机,让其围绕屏幕中心旋转
  20. User-Agent结构介绍及主流浏览器User-Agent大全

热门文章

  1. 【UE4】 Unreal 4.22 破碎效果教程
  2. docker 操作记录-2
  3. java序列化之writeObject 和readObject
  4. Delphi优秀免费资源
  5. TP-Link曝后门漏洞 攻击者可控制无线路由器
  6. 热文 | 卷积神经网络入门案例,轻松实现花朵分类
  7. 资深程序员建议放弃 JSP 吧,否则你可能“无路可走”!
  8. Cucumber 安装
  9. R语言读取csv文件,第一列列名出现乱码怎么办
  10. eMMC的五种操作模式