`
ssxxjjii
  • 浏览: 944869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOS push消息推送频次

    博客分类:
  • ios
 
阅读更多
  • 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

http://jcoder.org/apple/197/

分享到:
评论

相关推荐

    ios 消息推送 java后端demo(包括jar包)

    在iOS应用开发中,消息推送是一项重要的功能,它允许服务器向设备发送通知,即使应用程序在后台运行或完全关闭。这个“ios 消息推送 java后端demo”是为开发者提供的一个示例,帮助理解如何使用Java后端实现对iOS...

    关于IOS_APNS推送消息(iphone端+服务端)

    总的来说,iOS APNs推送消息涉及到客户端和服务端的协同工作,需要正确配置证书,处理设备Token,以及构建和发送有效的推送消息。通过理解这个过程,开发者可以确保他们的应用能够及时、准确地向用户推送通知。

    IOS远程消息推送详解

    iOS远程消息推送涉及到的技术细节丰富,其中主要包含APNS(Apple Push Notification Service),证书,以及消息传输过程。 1. APNS作用: APNS作为苹果提供的远程消息推送服务,是整个推送机制的核心服务器。它管理...

    IOS开发消息推送 APNS python 源码

    IOS开发消息推送 APNS python 源码, 纯自己实现协议, 无需安装额外库 代码简洁, 用户可以自己随意修改使用, 无需安装其他库, 直接发消息, 指定自己的证书即可. 找了很多代码,都不好使, 自己写的

    C#下IOS消息推送实例

    首先,我们需要了解iOS的消息推送服务(Apple Push Notification service, 简称APNs)以及C#中如何与之交互。 **1. iOS消息推送服务(APNs)** APNs是苹果公司提供的服务,允许开发者向运行iOS、iPadOS、watchOS、...

    JavaPush消息推送

    JavaPush消息推送是一种在Java平台上实现的用于向移动设备或者Web客户端发送实时消息的技术。它在各种应用场景中广泛使用,例如社交应用、新闻推送、在线游戏等,为用户提供即时的信息更新体验。JavaPush的核心在于...

    iOS实现消息推送及原理分析

    2. **APNS(Apple Push Notification Service)**:苹果官方提供的消息推送服务,它负责接收来自Provider的消息,并将它们安全地分发到目标iOS设备。 3. **iPhone**:作为接收端,iOS设备会通过APNS接收并处理推送...

    ios消息推送源码(含php服务端源码)

    本文将深入探讨“ios消息推送源码”,包括PHP服务端的实现,适用于那些正在使用Xcode 6.1进行APNs(Apple Push Notification service)开发的开发者。 首先,APNs是苹果公司提供的一个服务,它允许应用开发者向已...

    iOS 消息推送(iOS 工程源码)

    iOS消息推送是iOS应用开发中的一个重要特性,它允许应用程序在后台状态下接收服务器发送的通知,即使用户没有打开应用程序。本资源包含一个简单的iOS工程源码,用于实现这一功能。以下是关于iOS消息推送及其实现的...

    PHP代码发送IOS推送消息 PUSH IOS NOTIFICATION

    PHP代码发送IOS推送消息 PUSH IOS NOTIFICATION

    IOS消息推送服务端开发

    首先,iOS消息推送服务(Apple Push Notification service,简称APNs)是苹果公司提供的官方服务,用于向运行iOS或macOS系统的设备发送远程通知。开发者需要在Apple Developer账号中设置并获取推送证书,以便在...

    IOS设备消息推送服务JAVA调用依赖包和实例程序

    在iOS设备上实现消息推送服务,开发者通常会利用苹果的Apple Push Notification service(APNs)。本文将详细讲解如何使用JAVA程序来调用APNs服务,为iOS设备提供消息推送功能,并提供必要的依赖包和实例代码。 ...

    php ios push 脚本

    总的来说,PHP iospush脚本是利用PHP进行iOS设备推送的一个有效工具。通过熟悉APNs的工作原理,结合PHP的网络编程能力,你可以创建自己的推送服务,为iOS应用提供实时、可靠的推送通知。在实践中不断优化和改进脚本...

    push(实现消息推送)

    1. Google Firebase Cloud Messaging (FCM):这是Google提供的免费服务,允许开发者向Android、iOS甚至Web应用推送消息。FCM通过与Google服务器的长连接,当有新消息时,服务器会将消息推送到客户端。在"PushClient...

    javapush消息推送

    对于iOS设备,Apple使用的是Apple Push Notification service (APNs),同样需要获取设备的Token,并通过APNs接口发送推送消息。 3. **设备注册与鉴权**:客户端在安装应用时会向服务器注册,获取一个唯一标识(如...

    ios消息推送 使用notnoop消息推送

    本教程将详细讲解如何使用Notnoop库来实现iOS的消息推送。 首先,理解APNs的工作原理是至关重要的。APNs是一个苹果提供的服务,允许应用服务器向已安装的iOS或macOS应用发送远程通知。这些通知可以在用户未打开应用...

    ios的服务器推送要点

    本文将深入探讨iOS服务器推送的关键要点,包括Apple Push Notification Service(APNs)、推送通知的工作原理、证书配置、设备令牌、通知类型以及优化策略。 一、Apple Push Notification Service (APNs) APNs是...

    IOS消息推送

    本程序为测试ios推送消息程序。 生成推送证书后,添加到本程序根目录下,并配置JdSoft.Apns.Test.exe.config文件,就可以向指定设备推送消息。 可一作为验证证书是否生成正确。 ///证书名称 ...

    U盟消息推送_phpios推送_php安卓推送_thinkphp推送

    苹果的Push Notification Service (APNS) 是iOS设备接收推送通知的基础,而PHP作为后端服务器语言,可以通过与APNS交互来发送推送通知。开发者通常需要创建证书,配置服务器,并编写PHP脚本来生成并发送推送令牌。 ...

Global site tag (gtag.js) - Google Analytics