php ios推送(代码)_php技巧

复制代码 代码如下:

<?php
//php需要开启ssl(OpenSSL)支持
$apnsCert    = "ck.pem";//连接到APNS时的证书许可文件,证书需格外按要求创建
$pass        = "123456";//证书口令
$serverUrl   = "ssl://gateway.sandbox.push.apple.com:2195";//push服务器,这里是开发测试服务器
$deviceToken = "a8fcd4aa8943b223d4ebcd54fe168a8b99b3f24c63dbc0612db25a8c0a588675";//ios设备id,中间不能有空格,每个ios设备一个id
$message = $_GET ['message'] or $message = "hello!";
$badge   = ( int ) $_GET ['badge'] or $badge = 2;
$sound   = $_GET ['sound'] or $sound = "default";
$body    = array('aps' => array('alert' => $message , 'badge' => $badge , 'sound' => $sound));
$streamContext = stream_context_create();
stream_context_set_option ( $streamContext, 'ssl', 'local_cert', $apnsCert );
stream_context_set_option ( $streamContext, 'ssl', 'passphrase', $pass );
$apns = stream_socket_client ( $serverUrl, $error, $errorString, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $streamContext);//连接服务器
if ($apns) {
    echo "Connection OK <br/>";
} else {
    echo "Failed to connect $errorString";
    return;
}
$payload = json_encode ( $body );
$msg     = chr(0) . pack('n', 32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack('n', strlen($payload)) . $payload;
$result  = fwrite ( $apns, $msg);//发送消息
fclose ( $apns );
if ($result)
    echo "Sending message successfully: " . $payload;
else
    echo 'Message not delivered';
?>

时间: 2024-10-10 21:30:09

php ios推送(代码)_php技巧的相关文章

php ios推送(代码)

本篇文章是对php ios推送进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: <?php //php需要开启ssl(OpenSSL)支持 $apnsCert = "ck.pem";//连接到APNS时的证书许可文件,证书需格外按要求创建 $pass = "123456";//证书口令 $serverUrl = "ssl://gateway.sandbox.push.apple.com:2195";//push服务器,这里是

验证token、回复图文\文本、推送消息的实用微信类php代码_php技巧

本文实例为大家分享了用于验证token,回复图文.文本,向用户推送消息等功能的微信类,具体代码如下 <?php class Wechat{ private $data = array(); public function __construct($token){ $this -> auth($token, $wxuser) || exit; if(IS_GET){ echo($_GET['echostr']); exit; }else{ $xml = file_get_contents(&qu

php做ios推送的服务器,后台运行的时候会推送两条信息?有代码

问题描述 php做ios推送的服务器,后台运行的时候会推送两条信息?有代码 为什么php做ios推送的服务器的时候,后台运行的时候会推送两条信息?但是手机关掉屏幕推送的时候就正常了~ 就只有后台运行的时候是两条?? 怎么改呢? 下面是代码 /** 手机推送信息类 @author:wtt */ class Push{ private $deviceToken; private $message; function __construct($deviceToken,$message){ $this-

Java发送ios推送消息(APN)的代码示例

Java发送ios推送消息(APN)的代码示例 实际项目应用中,应该考虑使用开源项目java-apns:https://github.com/notnoop/java-apns 千万不要用一个叫JAVAPNS的项目.这个开源项目的代码非常烂,每次发送消息都重新建立socket连接. 在apple的文档中,都明确的说了会把这种行为当作dos攻击行为.性能差就更不用说了. ios手机上要安装对应的应用.该应用与.p12证书文件应该匹配. apple官方的,关于APN服务,和apn的feedback的

ios开发:用PHP实现IOS推送

 ios推送消息是个非常有用的功能,许多应用程序都具备了这个功能,成为实时应用的数据流核心.那么我们怎么用php为ios做推送服务呢?下面本文章将为您进行详细讲解. ios消息推送机制可以参考ios消息推送机制实现与探讨. 首先,需要一个pem的证书,该证书需要与开发时签名用的一致. 具体生成pem证书方法如下: 1. 登录 iPhone Developer Connection Portal(http://developer.apple.com/iphone/manage/overview/i

iOS推送的那些事_IOS

直接切入主题,讲讲如何模拟推送以及处理推送消息.在进入主题之前,我先说几个关键流程: 1.建Push SSL Certification(推送证书) 2.OS客户端注册Push功能并获得DeviceToken 3.用Provider向APNS发送Push消息 4.OS客户端接收处理由APNS发来的消息 推送流程图: Provider:就是为指定iOS设备应用程序提供Push的服务器.如果iOS设备的应用程序是客户端的话,那么Provider可以理解为服务端(推送消息的发起者)APNs:Apple

ios 推送真机无法接收不到

问题描述 ios 推送真机无法接收不到 http://blog.csdn.net/shenjie12345678/article/details/41120637我是按照这个博客来配置推送的证书的,php服务端显示消息已经推送出去了,可是我的真机没有收到,会是什么原因造成的呢?该如何解决.手机的通知已经打开,APPID应该也是没问题的 解决方案 https://www.jpush.cn/qa/?qa=9651/%E6%94%B6%E4%B8%8D%E5%88%B0%E6%8E%A8%E9%80%

ios推送 apns dos攻击-iOS推送被视为DOS攻击的具体算法是什么?怎么来控制?

问题描述 iOS推送被视为DOS攻击的具体算法是什么?怎么来控制? iOS推送被视为DOS攻击的具体算法是什么?怎么来控制?请大神指教,点拨一二 解决方案 可能是你推送消息的频率太高了,考虑使用缓存机制,降低推送消息的频率,看看是否可以解决你的问题.

ios-急求解决 IOS推送 javapns2.2

问题描述 急求解决 IOS推送 javapns2.2 javapns2.2 还能使用吗? 为什么我一直报错? 错误信息为: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 解决方案 确保你连的主机22端口可访问