跨区包逻辑
2020-08-13 16:40:13 1 举报
RSDK 壳子 AB 测试包,以及跨区包逻辑流程说明
作者其他创作
大纲/内容
N
查询数据库中是否存在此设备
是否是跨区包
因为可能存在一个 pid 下对应多个 guid 的情况,所以遗忘的跨区包根据 pid 来确定玩家大区的逻辑不适用了
调用壳子「setABTestFlag」方法重新加载游戏链接
玩家选服,换区
读取本地的配置,进入游戏
有
去 sharePerfence 中查找是否有最近登录信息
将「登录三要素」保存到全局变量中,将本地信息完整的Tag设置为 true
Y
程序启动
否
注意,跨区包的 subappid 可能会发生变化,如果使用 PTTrackerSDK.xml 中的 subappid,会造成统计错误,所以微端包是通过壳子调用统计接口的时候,壳子中是否存在 跨区的 subappid,如果存在,则在调用协议的时候将跨区相关的 subappid 传入 RSDK 协议的统计接口。当调用 PTTracker 时,如果发现传入了 subappid,会使用传入的 subappid 覆盖本地读取的 subappid 来传给 BI 进行区分
加载游戏链接
将配置保存一份到lastLoginInfo中
透传参数「private_data」中是否有 「ABTestSubAppId」
登录游戏(如果是跨区包,第一次登录游戏需要在连接中携带 isFirstLogin=true)
Y,执行executeNextLogicAfterGetDynamicUrlSucceed
壳子在调用 login 方法
壳子启动
最近登录信息是否完备
RBS 后端 rsdkclient开始
是否存在「abTestSubAppId」
将「登录三要素」以通用子平台ID作为perfenceName存一份起来
本地信息是否完备
是否开启了跨区开关
将游戏传过来的subappid通过壳子的统计接口传给BI,BI根据接到是通用 subappid 根据 IP 确定统计ID
执行异步获取游戏地址逻辑
和悦英文跨区包逻辑
根据新传入的通用大区子平台ID判断是否有本地信息,游戏还会传语言过来
给获取通用地区子平台ID 成功/ 失败 回调
是
将游戏传过来的语言和通用大区子平台ID(地区此时获取不到可以不用管,暂时用不到)以subappid作为perfenceName将3个参数存到本地
是否开启动态获取地址
判断「登录三要素」是否完整
根据算法,可能是循环分配,也可能是 Random 函数按运营设置的比例给客户端返回拼接好 abtest_subappid 的完整游戏链接,以及所有开放大区对应的 subappid 数组(游戏用这个参数来判断哪些大区处于开放)并将设备 ID 和完整的链接存储到库中
登录前通过 通用大区子平台ID 作为Tag 将语言,国家码,参数保存起来
玩家切区
线上动态获取链接中,是否包含「ab_url」字段
将「登录三要素」存一份到最近登录信息中
雷神 SDK 服务端请求 RBS 发货
将第一次登录的 Tag 设置为 true
N,执行 executeNextLogicAfterGetDynamicUrlFailed
读取本地语言,国家代码,根据国家代码和系统(android & ios)获取地区以及通用大区子平台ID
返回数据库中存储的完整游戏链接
获取本地配置的默认通用地区子平台ID,加上国家代码,语言存到全局变量中
获取最后登录的参数登录
线上动态获取游戏入口地址
将获取到的通用地区子平台ID,加上国家代码,语言存到全局变量中
将上面 3 个参数参数拼接在游戏 URL 上 reload game
获取:1. rbs 地址2. 默认的通用子平台ID3. 默认的大区通用语言下面两个参数是通过网络获取通用子平台ID,和获取语言失败的时候用的
是否取到通用地区子平台ID
开始游戏
壳子调用 RSDK 初始化并在初始化成功回调中处理逻辑
获取机器所属国家,去RBS 获取通用子平台ID
前端携带设备ID访问后端
获取手机的国家代码,访问RBS,匹配通用地区子平台ID
调用「sendABTestSubAppIdToPlugin」方法,将 ABTestSubAppId 传给渠道(雷神)插件
是否获取地址成功
游戏传新区的通用子平台ID
根据「ABTestSubAppId」来获取映射的 tradetype,以及发货地址
合成官斗 AB 融合测试包跨区逻辑
是否开启跨区
是否开启了跨区
这里将通用大区子平台ID,国家代码,语言称为「登录三要素」;当三要素齐备的时候,就满足了跨区包的登录条件;将这三要素都设置为全局变量,登录的时候可以直接取这三个参数,来生成最终跨区包的登录链接;为了保证这三个参数为相互匹配的一套,只能通过一个方法一次性地修改这三个值,这个方法是 setCrossZoneData
雷神 SDK 在登录的时候将「ABTestSubAppId」传入BI 和 gameUserId 绑定(此逻辑暂时未开发,但是先保留,如果龙叔回来开发出 guid 和 subappid 绑定的接口,支付就用 guid 来查询 BI 区分),雷神 SDK 在支付的时候判断是否存在「ABTestSubAppId」,如果存在,则在调用支付的时候通过透传字段传入
是否有最后登录的参数Tag:lastLoginInfo
0 条评论
下一页