一般情况下,一个项目要接入VasSonic,需要前端、终端、后台三端配合使用这个框架,才能达到预期的效果,这样有一定的接入成本。为了使开发者更加方便地使用VasSonic,Local Server模式应运而生。Local Server,顾名思义,相比于一般情况下终端、前端、后台全部接入,它允许在业务后台无法及时支持时,通过终端模拟server,提供本该后台支持的能力,从而降低接入成本。
开启Local Server模式后,对于从非Sonic后台返回的页面数据,终端会在收到数据的第一时间执行本该Sonic后台完成的处理逻辑:对页面进行模板和数据的拆分,对比本地的模板和数据缓存,根据两者的对比结果,添加Sonic响应头(eTag、template-change、template-tag),将此次请求返回伪装成正常情况下的Sonic后台返回。终端逻辑层面上对返回的数据是来自真正的Server还是Local Server并无感知,终端只需按照正常逻辑进行处理即可。因此在Local Server模式下,后台无需接入Sonic。
在Android端使用Local Server,首先需要引用最新的VasSonic依赖,在build.gradle中添加:
compile 'com.tencent.sonic:sdk:2.0.0-beta'
Local Server功能默认是关闭的,需要初始化SonicSession配置时打开Local Server,Android端代码如下:
SonicSessionConfig.Builder sessionConfigBuilder = new SonicSessionConfig.Builder();
sessionConfigBuilder.setSupportLocalServer(true);
sessionConfigBuilder.build();
在iOS端使用Local Server,需要在Podfile中指定引入:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'VasSonic', '2.0.0-beta'
end
然后在代码中通过
SonicSessionConfiguration
打开Local Server
SonicSessionConfiguration *configuration = [SonicSessionConfiguration new];
configuration.enableLocalServer = YES;
[[SonicEngine sharedEngine] createSessionWithUrl:self.url withWebDelegate:self withConfiguration:configuration];
具体接入方法请详细参考
官方Demo
(https://github.com/Tencent/VasSonic)。