此段内容其实有很多都知道,只是这里把问题相对集中的显示出来,也容易找到问题.所以我就转载了一下...
内容来自
http://blog.latermoon.com/?p=878
- 以下是大杂烩:
- 1.不要用一个开源的叫javapns的lib来推送,这个项目代码臃肿混乱,过度设计,还内存溢出;可以使用notnoop.apns
- 2.Push会延时,也会被丢弃,似乎网络情况,Push本身带有Expiry,超过该值APNS会丢掉Push
- 3.Push有三个基本属性,alert、badge、sound,通过将一些置空,可以实现只修改App上的气泡不出现文本、出现文本但不提示声音,发出声音而不出现任何提示等等效果
- 4.Push除了三个基本属性,还可以附带任意json数据,但总大小不能超过256字节
- 5.要异步发送Push,可以将应用内的Push序列化到Redis队列再消费,并且增加队列监控
- 6.和国外服务的连接速度比较慢,要建立多个连接,使用多线程发送
- 7.APNS有提供feedback服务,用于查询一个Token是否有效
- 8.一台iPhone上的一个App会有两种Token,一种是Developer的,一种是正式Product的,不能混用,在一个与APNS的SSL连接里,使用Developer Token向Product发送Push是无法送达的,同时在十几秒内即使用正确的Product Token发送也无法送达,效果就像直接丢弃
- 9.iPhone上的App处于前台运行时,即使受到Push也不会在界面出现提示,此时App内的回调函数会收到
- 10.高速地向一台设备发送大量Push,Apple会自动丢掉部分Push