iOS推送javaPNS源码解析一,设备类
来源:互联网 发布:网络优化教程 编辑:程序博客网 时间:2024/05/16 04:04
最近分析了javaPns2.2的源码,根据模块简要总结下
首先是device模块,device顾名思义就是设备的意思,这对于ios手机推送来说,就是iPhone4/4s/5/5s/6/6s,当然推送到平板应该也是可以的,平板的我没试过,有条件的童鞋们可以试下。
先说Device接口吧,该接口定义了设备的基本属性的获取方法,1、token;2、最后跟服务器注册时间;3、deviceId,一般情况下跟token一致,表示唯一的设备。推送的时候我们只设置token就好了。
DeviceFactory,该接口已经不推荐使用,该接口用于向一个map中存取删Device对象,好简单有木有!
Devices,这个是个经常使用的实类,主要有两个方法,
public static List<Device> asDevices(Object rawList),该方法是将String,String[],List<String>,List<Device>,Device[]等类型的参数转化为一组设备对象,很高大上有木有,不过说白了里面就是根据token创建device对象Device,或者判断为Device类型后直接返回。
public static List<PayloadPerDevice> asPayloadsPerDevices(Object rawList),这个方法是将PayloadPerDevice[],PayloadPerDevice,List<PayloadPerDevice>格式的对象返回为List<PayloadPerDevice>对象
这里面需要说明一个类PayloadPerDevice,该类表示它自身包含一个消息体和一个设备,该消息体要发给这个设备。
下面看设备的基本实现
BasicDeviceFactory,这个类实现了DeviceFactory接口,内部实现了一个Map<String, BasicDevice>对象,进行device的增删查,该map使用deviceId作为key,以Device最为value。已经不推荐使用该类。
BasicDevice,该类实现Device接口,实现其相关属性的set/get方法,并提供了token校验:是否64位。
剩下的就是各种异常类
DuplicateDeviceException,BasicDeviceFactory中存入map的时候发现相同的key,报异常
InvalidDeviceTokenFormatException,token校验失败异常
NullDeviceTokenException,BasicDeviceFactory中存入map的时候发现key为null,报异常
NullIdException,BasicDeviceFactory中存入map的时候发现id为null,报异常
UnknownDeviceException,BasicDeviceFactory中获取设备为null,报异常
- iOS推送javaPNS源码解析一,设备类
- iOS推送javaPNS源码解析七,推送信息类
- iOS推送javaPNS源码解析八,多线程推送类
- iOS推送javaPNS源码解析二,消息体类
- iOS推送javaPNS源码解析三,服务器类
- iOS推送javaPNS源码解析四,证书管理类
- iOS推送javaPNS源码解析五,代理管理类
- iOS推送javaPNS源码解析六,连接管理类
- iOS推送javaPNS源码解析九,总结
- javapns 推送ios消息
- javapns实现apple ios推送
- 利用javapns对IOS进行推送
- 多线程推送 push JavaPNS 2.1
- javaPNS进阶-高级推送技巧
- IOS push推送(javapns包与notnoop包的区别)
- IOS push推送(javapns包与notnoop包的区别)
- JavaPns向APNS发送推送信息
- 使用JavaPns向APNs推送通知
- 剑指offer 复杂链表的复制
- 【数据库事务】--事务传播子方法事务失效(老张)
- Jstorm 反压(Backpressure)
- 加载图片和文字
- python爬虫案例——新浪腾讯股票数据采集
- iOS推送javaPNS源码解析一,设备类
- 响应式开发
- 在windows系统中安装Sulley
- MVP其中有接口(x.http网络请求)
- android NDK
- 事务隔离级别
- 自定义view圆环进度条
- shm_open函数实例及说明
- 虚拟机Centos7配置网络