解析php做推送服务端实现ios消息推送

本篇文章是对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),"rn";
//下边的写法就是死写法了,一般不需要修改,
//唯一要修改的就是:ssl://gateway.sandbox.push.apple.com:2195这个是沙盒测试地址,ssl://gateway.push.apple.com:2195正式发布地址
$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('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print "Failed to connect $err $errstrn";
return;
}
else {
print "Connection OKn<br/>";
}
// send message
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
print "Sending message :" . $payload . "n";
fwrite($fp, $msg);
fclose($fp);
?>

时间: 2024-09-14 12:27:46

解析php做推送服务端实现ios消息推送的相关文章

解析php做推送服务端实现ios消息推送_php技巧

准备工作1.获取手机注册应用的deviceToken(iphone手机注册应用时返回唯一值deviceToken)2.获取ck.pem文件(做手机端的给)3.获取pass phrase(做手机端的给) testpush.php文件 复制代码 代码如下: <?php//手机注册应用返回唯一的deviceToken$deviceToken = '6ad7b13f b05e6137 a46a60ea 421e5016 4b701671 cc176f70 33bb9ef4 38a8aef9';//ck.

请问哪位大神有试过用c# 服务端开发百度云推送的

问题描述 请问哪位大神有试过用c# 服务端开发百度云推送的 c#服务端开发百度云推送的(特别是服务端推送一条消息给IOS手机,就报了一个403,说权限验证失败的),问了百度云的人,问了都不知道什么回事~! 解决方案 看看你的校验签名和key是否正确,百度有没有给你开权限和账户.如果百度自己的人都不知道,我只能无语了. 解决方案二: 楼主,请问有解决方案吗?同样遇到

qt-使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接

问题描述 使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接 5C cmd下使用telnet也是输入字符就断开连接电脑杀毒软件一直没启动,防火墙全部关闭,端口号10000然后写了个客户端,同样的问题,输入字符断开连接.楼下依次上图 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 输入字符a就出现了断开连接 下面上代码 解决方案六: chatsever.h #ifndef CHATSEVER_H#define CHATSEVER_H #inclu

有谁做过IOS消息推送的?

问题描述 有谁做过IOS消息推送的?咨询一个问题.JdSoft.Apns.Notifications.dll目前无法发送消息.提示[由于远程方已关闭传输流,身份验证失败]p12文件已经更新为可用的版本.

iOS消息推送原理及具体实现代码_IOS

一.消息推送原理 在实现消息推送之前先提及几个于推送相关概念,如下图1-1: 1.Provider:就是为指定IOS设备应用程序提供Push的服务器,(如果IOS设备的应用程序是客户端的话,那么Provider可以理解为服务端[消息的发起者]): 2.APNS:Apple Push Notification Service[苹果消息推送服务器]: 3.iPhone:用来接收APNS下发下来的消息: 4.Client App:IOS设备上的应用程序,用来接收iphone传递APNS下发的消息到制定

socket 客户端怎样在规定的时间内没有接收到服务端传来的消息连接自动关闭

问题描述 如题:socket客户端如果在规定的时间内没有接收到服务端传来的消息连接自动关闭例如:时间是2分钟应该怎样设置两分钟后关闭和服务端的连接! 解决方案 解决方案二:楼主,其实你考虑的问题Socket本省已经实现了:Socket.setSoTimeout(inttimeout):设置Socket的连接的超时值,指定的以毫秒为单位的超时值.希望楼主多看API,会有意想不到的惊喜哦!解决方案三:代码:Socketsocket=null;try{socket=newSocket(InetAddr

Android 从本地服务端导入图片消息到数据库,图片不显示

问题描述 导入方法EMMessage message = EMMessage.createSendMessage(EMMessage.Type.IMAGE);message.setChatType(ChatType.Chat);ImageMessageBody body = new ImageMessageBody();body.setFileName("test1.jpg");body.setRemoteUrl("https://a1.easemob.com/easemob

socket服务端可以接受消息但是无法返回的问题

问题描述 这是服务端代码package com.hj.demo.socket;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server {public Server() throws IOException {ServerSocket

请问 服务端 api 是否 支持 推送一条 类似于 微信中的 你们已经成为好友了 那样的系统消息?

问题描述 解决方案 可以使用透传消息http://docs.easemob.com/doku.p ... es%23发送透传消息解决方案二:可以自己保存透传消息,显示的位置自己在客户端操作解决方案三:那个可以在 想要的位置以想要的形式展示么,如果可以的话 这个是不是该由客户端去处理呢?解决方案四:谢谢, 这个 确定可以 做成图片中的形式 对吧