码迷,mamicode.com
首页 > 移动开发 > 详细

IOS推送--之开发模式测试

时间:2015-03-04 14:30:01      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

参考文章:http://blog.csdn.net/showhilllee/article/details/8631734#comments

第一步、下载你工程的开发证书

技术分享

 

 

 

 

 

 

第二步、从钥匙串访问中导出秘钥

技术分享

 

 

 

 

 

 

 

 

 

注意我在这里使用的密码是123456

技术分享

 

 

 

 

 

 

 

 

 

 

 

把他们放在同一个文件里边

第三步、证书文件处理

打开终端进入上述文件夹

① 输入命令把.cer的SSL证书转换为.pem文件openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

技术分享

 

 

 

 

②输入命令把私钥test.p12文件转化为.pem文件

 

openssl pkcs12 -nocerts -out PushChatKey.pem -in test.p12

技术分享

 

 

 

 

对生成的这两个pem文件再生成一个pem文件,来把证书和私钥整合到一个文件里:

cat PushChatCert.pem PushChatKey.pem > ck.pem

生成ck.pem文件

④测试与苹果推送服务器连接;

telnet gateway.sandbox.push.apple.com 2195

技术分享

 

 

 

下面我们要使用我们生成的SSL证书和私钥来设置一个安全的链接去链接苹果服务器

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem

输入Q结束

技术分享

 

 

 

 

 

 

 

 

 

 

 

客户端我就不说了

第四步、获取deviceToken及推送php测试代码

①运行你的App获取deviceToken,将你获取到deviceToken填写至php代码中的位置;

②在终端输入php pushMe.php(php代码稍后贴上)

技术分享

 

 

技术分享

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

技术分享

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意php代码必须和其他文件放在一个文件夹中

php代码段

 1 <?php
 2 
 3 // Put your device token here (without spaces):
 4 
 5 $deviceToken = ‘deviceToken去掉中间的空格‘;
 6 
 7 // Put your private key‘s passphrase here:密语
 8 $passphrase = ‘123456‘;
 9 
10 // Put your alert message here:
11 $message = ‘这是一条推送消息‘;
12 
13 ////////////////////////////////////////////////////////////////////////////////
14 
15 $ctx = stream_context_create();
16 stream_context_set_option($ctx, ‘ssl‘, ‘local_cert‘, ‘ck.pem‘);
17 stream_context_set_option($ctx, ‘ssl‘, ‘passphrase‘, $passphrase);
18 
19 // Open a connection to the APNS server
20 $fp = stream_socket_client(
21     ‘ssl://gateway.sandbox.push.apple.com:2195‘, $err,
22     $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
23 
24 if (!$fp)
25     exit("Failed to connect: $err $errstr" . PHP_EOL);
26 
27 echo ‘Connected to APNS‘ . PHP_EOL;
28 
29 // Create the payload body
30 $body[‘aps‘] = array(
31     ‘alert‘ => $message,
32     ‘sound‘ => ‘default‘
33     );
34 
35 // Encode the payload as JSON
36 $payload = json_encode($body);
37 
38 // Build the binary notification
39 $msg = chr(0) . pack(‘n‘, 32) . pack(‘H*‘, $deviceToken) . pack(‘n‘, strlen($payload)) . $payload;
40 
41 // Send it to the server
42 $result = fwrite($fp, $msg, strlen($msg));
43 
44 if (!$result)
45     echo ‘Message not delivered‘ . PHP_EOL;
46 else
47     echo ‘Message successfully delivered‘ . PHP_EOL;
48 
49 // Close the connection to the server
50 fclose($fp);
51     
52 ?>

 

代码下载:php代码下载

IOS推送--之开发模式测试

标签:

原文地址:http://www.cnblogs.com/Doule/p/4313081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!