php ios推送(代码)

本篇文章是对php ios推送进行了详细的分析介绍,需要的朋友参考下
 
复制代码 代码如下:

<?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-30 07:32:30

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

php ios推送(代码)_php技巧

复制代码 代码如下: <?php//php需要开启ssl(OpenSSL)支持$apnsCert    = "ck.pem";//连接到APNS时的证书许可文件,证书需格外按要求创建$pass        = "123456";//证书口令$serverUrl   = "ssl://gateway.sandbox.push.apple.com:2195";//push服务器,这里是开发测试服务器$deviceToken = "a

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端口可访问

对推送代码进行简单优化

百度自动推送代码让用户每次浏览该页面的时候都会向百度提交一次.省去了站长的人工操作,能有效提升了收录效率. 代码如下 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/p