当前在千牛上客户端与服务端数据交互的方式只有客户端主动拉取的方式。主动拉取的方式绝大多数情况下能满足业务的需求。但是他也有天然的缺陷。比如:
场景1:同步最新的订单状态
基于主动拉取方式的做法在客户端上的表现
为了保证客户端展示的状态是最新的状态,在不同的tab切换需要重新从服务端加载数据。类似于这种场景,可以使用数据同步,有最新的数据变化之后服务端把数据实时的同步到端,客户端只需要读取本地的数据即可。
场景2:客服接待端和仓库打印端数据同步。
如下图所示
当前的做法是
当前是千牛的客服接待端和千牛的仓库端主动的轮训ISV服务端获取最新的数据,但是为了降低对ISV服务端的压力,主动轮训的间隔都会设置的比较大。这种情况下有如下问题:
使用数据同步的做法是
使用了数据同步后,数据的任何变化都会在秒级别同步到其他端,基本上可以实时保证多端,多用户的数据是同步的。
原理如下图
主要包含两块:
整个使用分如下几个步骤:
业务初次使用,需要初始化数据。初始化流程如下图
流程如下图
客户端通过协议来查询数据,协议使用见查询数据协议,使用协议过程中的参数说明如下。协议的调用见协议调用文档。
举例如下:
var application = TOP.mobile.application; application.request({ event:'queryData', biz:{ nameSpace : 'jdy_remote_config', where : 'appkey= ? and config_key=?', args : '123456,jiaoyi.open.new.plan.ratio' }, success:function(){ }, error:function(){ } });
当前这个服务还处于灰度阶段,如果使用过程中有任何问题,或者有一些新的需求,可以在旺旺群:239300039 进行咨询,群密码:qianniu