背景
校时接口一般用的比较少,一般用的话就注册上级成功之后会发送 一个校时,告诉服务端目前客户端的时间情况。
实现
这个实现的话,我们再注册的时候就已经实现了,注册成功就会发送一次校时
先看抓包
具体实现代码
service接口层
/**
* 校时
*/
boolean time(ViewLibraryCascadeDevice cascadePlatform);
service实现层
@Override
public boolean time(ViewLibraryCascadeDevice cascadePlatform) {
if(StringUtils.isEmpty(cascadePlatform.getRegisterHost())) {
cascadePlatform= this.baseMapper.selectByCascadeDeviceId(cascadePlatform.getDeviceId());
}
DeviceViewBaseParam deviceBaseParam = new DeviceViewBaseParam(cascadePlatform.getDeviceId());
String date = RESTClient.getClientConnectionPool()
.fetchByGetMethod(cascadePlatform.getRegisterHost() + CascadeConstant.SYSTEM_TIME,
deviceBaseParam, new BasicHeader("Date", String.valueOf(new Date())));
if (StringUtils.isEmpty(date)) return false;
ResponseStatusObject statusObject = GsonUtil.stringToBean(date, ResponseStatusObject.class);
if (!statusObject.currentIsSuccess()) return false;
return true;
}
Controller实现层
@RestController
@RequestMapping("/custom/VIID")
public class CascadePlatformController {
@Resource
private IViewLibraryCascadeDeviceService viewLibraryCascadeDeviceService;
@PostMapping("/System/time")
public Object time(@RequestBody ViewLibraryCascadeDevice cascadePlatform){
if(viewLibraryCascadeDeviceService.time(cascadePlatform)) {
return "校时成功";
}
return "校时失败";
}
}
同样的道理,为了区分,我们加上了/custom前缀。
测试
我们先发的注册,后手动调用postman发的校时。