php 苹果推送消息推送,苹果消息推送服务(APNS)的PHP版服务器端公共类

这是一个关于如何使用ApplePush类进行APNS(Apple Push Notification Service)消息推送的代码实现。类中包含了设置APNS服务器URL、设置推送消息、打开和关闭连接以及发送推送消息的方法。代码使用了SSL证书和密钥来建立与APNS服务器的连接,并通过json编码的payload发送推送数据。
摘要由CSDN通过智能技术生成

/**

* ApplePush 苹果消息推送公共类

* @author www.sunbloger.com

*/

class ApplePush

{

/**

* APNS server url

*

* @var string

*/

protected $apns_url = 'ssl://gateway.push.apple.com:2195'; //沙盒地址:ssl://gateway.sandbox.push.apple.com:2195

/**

* 推送数据

*

* @var string

*/

private $payload_json;

/**

* 数据流对象

*

* @var mixed

*/

private $fp;

/**

* 设置APNS地址

*

* @param string $url

*/

public function setApnsUrl($url)

{

if (empty($url)) {

return false;

} else {

$this->apns_url = $url;

}

return true;

}

/**

* 设置推送的消息

*

* @param string $body

*/

public function setBody($body)

{

if (empty($body)) {

return false;

} else {

$this->payload_json = json_encode($body);

}

return true;

}

/**

* Open 打开APNS服务器连接

*

* @param string $pem 证书

* @param string $passphrase 证书密钥

*/

public function open($pem, $passphrase)

{

if (empty($pem)) {

return false;

}

if (empty($passphrase)) {

return false;

}

$ctx = stream_context_create();

stream_context_set_option($ctx, 'ssl', 'local_cert', $pem);

stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

$fp = stream_socket_client($this->apns_url, $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);

if (!$fp) {

return false;

}

$this->fp = $fp;

return true;

}

/**

* Send 推送

*

* @param string $token

*/

public function send($token)

{

$msg = chr(0) . pack('n', 32) . pack('H*', $token) . pack('n', strlen($this->payload_json)) . $this->payload_json;

$result = fwrite($this->fp, $msg, strlen($msg));

return $result;

}

/**

* Close APNS server 关闭APNS服务器连接

*

*/

public function close()

{

fclose($this->fp);

return true;

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值