-
1、证书
开发:Development Push SSL Certificate
产品:Production Push SSL Certificate
程序开发期间用开发证书,提交AppStore后切换为产品证书。
java服务端推荐使用 javapns http://code.google.com/p/javapns/
用命令将cer转换为p12。
参考:http://www.cocoachina.com/iphonedev/sdk/2011/1124/3599.html
-
2、发送
APNs会将链接太频繁的链接视为DDos攻击,所以链接频率不要太高。
目前每5分钟连接接一次。
因为使用了加密链接,会被GFW随机阻断(看脸)···看有的说建议用国外VPS。
单个ip连接每次发送消息数量不要超过1000条,高了容易失败和受错误token影响的用户太多。
我使用了mina昨晚主服务,2台服务器做发送服务器,主服务器生成消息列表,在平均分配到2台发送服务器上发送。每个服务器不超过1000条。
以后用户多了增加发送端就ok。当然还需要做心跳之类的服务监控。
-
3、Token和消息
token是系统+硬件关联,也就是你每次恢复出厂设置刷新版本系统和新iPhone/iPad激活过程,就是去苹果服务器请求一个新的token回来。
越狱用户没有激活过程,所有苹果不会有这个手机的token。越狱手机是收不到消息的,除非打了push补丁。
打了补丁的是伪造一个token,会有消息发串的情况(论坛看越狱用户说过,未证实)。
token和消息一对一,无论你给一个用户发多条内容还是一条内容。
当用户关闭了消息通知或者授权后又在设置了取消的对应用的授权,那么这个token是错误的token。
错误的token苹果不会通知应用·····所以只能靠自己查。
错误的token会导致的问题:
有一个消息队列:[message1,message2,message3,message4,message5]
当message3这个消息的token变成无效token后
你发送这个队列,你不会收到任何错误报告,但是,这个队列的message4,message5已经是不可达的了。
因为message3是个错误token,APNs不会继续发送剩下的内容···
所以,需要在每次发送前或后,调用APNs提供的feedback服务,取得错误的token,然后在自己的业务里处。
下次发送时,消息队列里就不能够有发送用户token是错误的消息了。
4、服务器返馈
当用户将我们的应用删除时,我们应该停止对这台机器推送,这个SSL地址是:
正式机:feedback.push.apple.com, port 2196
测试机:feedback.sandbox.push.apple.com, port 2196
具本见
https://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html
php如下:
[cc lang='php' ]
$certFile = ‘apns-dev.pem’;
while(true){
$ctx = stream_context_create();
stream_context_set_option($ctx, ‘ssl’, ‘local_cert’, $certFile);
//stream_context_set_option($ctx, ‘ssl’, ‘passphrase’, $this->certPass);
echo “try to open stream\n”;
$fp = stream_socket_client(‘ssl://feedback.sandbox.push.apple.com:2196′, $err, $errstr, 5, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp) {
print “Failed to connect”. $err . $errstr. “\n”;
exit();
}
else
{
echo ‘Connected to feedback sandbox…’;
while(($in = fread($fp, 1024)) != EOF)
{
echo ‘read ‘. $in . “\n”;
}
socket_close($fp);
fclose($fp);
}
sleep(2000);
}
[/cc]
注意,要将你的APP删除后,再发一个推送,才可能返回数据
(from:
http://hi.baidu.com/smallqiang/item/334f54e287cb5cd1eb34c95e
)
相关推荐
在iOS应用开发中,消息推送是一项重要的功能,它允许服务器向设备发送通知,即使应用程序在后台运行或完全关闭。这个“ios 消息推送 java后端demo”是为开发者提供的一个示例,帮助理解如何使用Java后端实现对iOS...
总的来说,iOS APNs推送消息涉及到客户端和服务端的协同工作,需要正确配置证书,处理设备Token,以及构建和发送有效的推送消息。通过理解这个过程,开发者可以确保他们的应用能够及时、准确地向用户推送通知。
iOS远程消息推送涉及到的技术细节丰富,其中主要包含APNS(Apple Push Notification Service),证书,以及消息传输过程。 1. APNS作用: APNS作为苹果提供的远程消息推送服务,是整个推送机制的核心服务器。它管理...
IOS开发消息推送 APNS python 源码, 纯自己实现协议, 无需安装额外库 代码简洁, 用户可以自己随意修改使用, 无需安装其他库, 直接发消息, 指定自己的证书即可. 找了很多代码,都不好使, 自己写的
首先,我们需要了解iOS的消息推送服务(Apple Push Notification service, 简称APNs)以及C#中如何与之交互。 **1. iOS消息推送服务(APNs)** APNs是苹果公司提供的服务,允许开发者向运行iOS、iPadOS、watchOS、...
JavaPush消息推送是一种在Java平台上实现的用于向移动设备或者Web客户端发送实时消息的技术。它在各种应用场景中广泛使用,例如社交应用、新闻推送、在线游戏等,为用户提供即时的信息更新体验。JavaPush的核心在于...
2. **APNS(Apple Push Notification Service)**:苹果官方提供的消息推送服务,它负责接收来自Provider的消息,并将它们安全地分发到目标iOS设备。 3. **iPhone**:作为接收端,iOS设备会通过APNS接收并处理推送...
本文将深入探讨“ios消息推送源码”,包括PHP服务端的实现,适用于那些正在使用Xcode 6.1进行APNs(Apple Push Notification service)开发的开发者。 首先,APNs是苹果公司提供的一个服务,它允许应用开发者向已...
iOS 推送消息技术详解 iOS 推送消息是许多 iOS 应用都具备的功能,它允许开发者向用户推送消息,提高用户体验和应用的粘性。本文将详细介绍 iOS 推送消息的工作机制、证书生成过程和工程代码实现。 一、iOS 推送...
iOS消息推送是iOS应用开发中的一个重要特性,它允许应用程序在后台状态下接收服务器发送的通知,即使用户没有打开应用程序。本资源包含一个简单的iOS工程源码,用于实现这一功能。以下是关于iOS消息推送及其实现的...
PHP代码发送IOS推送消息 PUSH IOS NOTIFICATION
首先,iOS消息推送服务(Apple Push Notification service,简称APNs)是苹果公司提供的官方服务,用于向运行iOS或macOS系统的设备发送远程通知。开发者需要在Apple Developer账号中设置并获取推送证书,以便在...
通过以上步骤,我们可以在Java服务端成功地构建一个APNs推送系统,为iOS应用提供实时的消息通知。当然,实际项目中还需要考虑异常处理、性能优化、消息队列等复杂情况,但这些基本操作构成了实现推送服务的基础。在...
1. Google Firebase Cloud Messaging (FCM):这是Google提供的免费服务,允许开发者向Android、iOS甚至Web应用推送消息。FCM通过与Google服务器的长连接,当有新消息时,服务器会将消息推送到客户端。在"PushClient...
在iOS设备上实现消息推送服务,开发者通常会利用苹果的Apple Push Notification service(APNs)。本文将详细讲解如何使用JAVA程序来调用APNs服务,为iOS设备提供消息推送功能,并提供必要的依赖包和实例代码。 ...
总的来说,PHP iospush脚本是利用PHP进行iOS设备推送的一个有效工具。通过熟悉APNs的工作原理,结合PHP的网络编程能力,你可以创建自己的推送服务,为iOS应用提供实时、可靠的推送通知。在实践中不断优化和改进脚本...
对于iOS设备,Apple使用的是Apple Push Notification service (APNs),同样需要获取设备的Token,并通过APNs接口发送推送消息。 3. **设备注册与鉴权**:客户端在安装应用时会向服务器注册,获取一个唯一标识(如...
本教程将详细讲解如何使用Notnoop库来实现iOS的消息推送。 首先,理解APNs的工作原理是至关重要的。APNs是一个苹果提供的服务,允许应用服务器向已安装的iOS或macOS应用发送远程通知。这些通知可以在用户未打开应用...
本文将深入探讨iOS服务器推送的关键要点,包括Apple Push Notification Service(APNs)、推送通知的工作原理、证书配置、设备令牌、通知类型以及优化策略。 一、Apple Push Notification Service (APNs) APNs是...
本程序为测试ios推送消息程序。 生成推送证书后,添加到本程序根目录下,并配置JdSoft.Apns.Test.exe.config文件,就可以向指定设备推送消息。 可一作为验证证书是否生成正确。 ///证书名称 ...