background image

 

PHP 开发:php 做推送服务端实现 ios 消息推送

准备工作
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";

//下边的写法就是死写法了,一般不需要修改,
//唯一要修改

$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('', 

$err

$errstr

, 60, STREAM_CLIENT_CONNECT, 

$ctx

);

if

 (!

$fp

) {