iOS推送javaPNS源码解析三,服务器类

有设备,有消息体那就得有服务器啊,这篇就说服务器

服务器不是一个简单的java类对象,需要有各种的方法和属性,因此javaPns将其顶级类定义为一个接口AppleServer,为所有服务器提供了相关方法

其方法有
    public InputStream getKeystoreStream() throws InvalidKeystoreReferenceException,返回证书(keyStore)的InputStream
    public String getKeystorePassword(),返回证书类型
    public String getKeystoreType(),返回证书类型,iOS推送使用的是p12证书
    public String getProxyHost(),配置服务器地址(或者说服务器代理使用的地址),分为系统配置和JVM虚拟机配置
    public int getProxyPort(),配置服务器监听端口,分为系统配置和虚拟机配置
    public void setProxy(String proxyHost, int proxyPort);设置代理

接下来是其抽象类,该抽象类基本实现了服务器的一些抽象方法。主要是声明一下接口中需要的属性,设置get/set方法,对keyStore进行Stream校验,这里只说下构造函数

    public AppleServerBasicImpl(Object keystore, String password, String type) throws KeystoreException {
        //校验keystore  只能是文件或者byte[]
        KeystoreManager.validateKeystoreParameter(keystore);
        this.keystore = keystore;
        this.password = password;
        this.type = type;
        //确定keyStore是一个确定的对象,能够被反复引用,一般来说p12证书在这里传递的是证书路径,这里转化为KeyStore
        this.keystore = KeystoreManager.ensureReusableKeystore(this, this.keystore);
    }

iOS推送有两个服务器一个是推送服务器,一个是反馈服务器,推送服务器即我们使用的推送消息的服务器,反馈服务器是指我们可以发送请求,查询已经卸载我们应用的手机token,从而不再给他们推送数据。

这两个服务器的代码结构跟上边是一致的,分别继承AppleServer定义了一个接口,在该接口中定义了访问地址和端口号,请注意开发环境和生产环境都有相关的地址和端口,其实现类也就是仅仅设置服务器地址端口和构造函数。

需要说明的是,构造函数时候需要注意是否生产环境,与证书环境保持一致。

下面是一个构造函数示例

 public AppleNotificationServerBasicImpl(Object keystore, String password, String type, String host, int port) throws KeystoreException {
  super(keystore, password, type);
  this.host = host;
  this.port = port;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值