起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6218|回复: 5

[处理中3] 多租户环境下的推送问题

[复制链接]

101

主题

323

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
QQ
发表于 2018-5-22 15:31:39 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
版本:bex5_v3.8

1、多租户环境下 产生了两个push证书  两个证书都放在pushServer下的cert文件夹下  那么justep.xml文件两个证书该怎么配置呢?

2、打包APP的时候是两个的端口都可以用1883吗  还是需要改一个 在什么地方改端口呢?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-22 15:54:00 | 显示全部楼层
1.push证书跟多租户无关,正式是苹果证书,分发布证书和开发证书,用哪个证书要看自己打的发布包还是开发包

2.1883是消息服务的端口,不明白你说的两个端口是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

101

主题

323

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
QQ
 楼主| 发表于 2018-5-22 16:19:50 | 显示全部楼层
jishuang 发表于 2018-5-22 15:54
1.push证书跟多租户无关,正式是苹果证书,分发布证书和开发证书,用哪个证书要看自己打的发布包还是开发包 ...

我的意思是我有两个租户 就有两个client  打两个包  包名不一样 那么push证书也会有两个啊   那消息服务是不是也有两个呢  还是说两个租户可以共用同一个1883的消息服务的端口
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-22 17:13:20 | 显示全部楼层
目前没有这样的配置需要自己按如下方案实现
1.自己在PushServer中定义一个类继承APNsMessageProcessor
2.修改runtime\PushServer\WEB-INF\justep.xml中
  去掉<class certPath="/WEB-INF/cert/push.x5.p12" certPassword="justep" isDev="false">com.justep.push.processor.APNsMessageProcessor</class>的配置

  添加自己类的配置,加一个client参数(配置为clientCode的值),不同的client配置自己的证书,如下:
     <class certPath="/WEB-INF/cert/aaa.x5.p12" certPassword="justep" isDev="false" client="aaa">com.justep.push.processor.APNsMessageProcessor</class>

     <class certPath="/WEB-INF/cert/bbb.x5.p12" certPassword="justep" isDev="false" client="bbb">com.justep.push.processor.APNsMessageProcessor</class>


2.自己定义的类中重写APNsMessageProcessor中的isMatch和setProperty两个方法


    public boolean isMatch(SinglePushMessage message) {
        if (super.isMatch(message)){
            String person =  SinglePushMessage.getPerson();//personid
            //写sql通过personid到SA_OPOrg中查出clientCode的值
        if (this.client.eq(clientCode))    {
            return true;
    }

    return false;

}

public void setProperty(String name, String value, ServletContext context) {//设置justep.xml中的配置属性
    if ("client".eq(name)){
        this.client = name;
    }else{
        super.setProperty(name, value, context);
    }
}


需要注意从数据库获取后最好自己缓存起来下次从缓存中存,对性能有所优化


消息服务器的地址就是一个,android是不分包名的,只有苹果才分包名,苹果是不走消息服务的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

101

主题

323

帖子

1038

积分

金牌会员

Rank: 6Rank: 6

积分
1038
QQ
 楼主| 发表于 2018-5-23 14:45:17 | 显示全部楼层
jishuang 发表于 2018-5-22 17:13
目前没有这样的配置需要自己按如下方案实现
1.自己在PushServer中定义一个类继承APNsMessageProcessor
2.修 ...

这个Java文件放到pushServer下就可以执行了吗  那这个personID在这个Java文件中是怎么获取的呢  我的代码中this.clent 也会报错
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-5-23 15:15:29 | 显示全部楼层
1.有编译出对应的class文件才可以啊
studio中切换到java视图,把PushServer导入,在src下创建包名创建java

2.2楼发的中写了啊
String person =  SinglePushMessage.getPerson();//personid

3.要自己先定义变量
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-11 10:32 , Processed in 0.133011 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表