GA/T 1400协议 - 保活流程

** 需求**:当下级平台成功注册上级平台后,需要发送保活消息保持在线状态。上级平台才可以向下级平台发送订阅消息、以及下级平台向上级平台推送通知。保活接口调用频率10s一次,

一、保活接口

1.接口文档

GA/T 1400.4

2.入参对象

GA/T 1400.3

3.请求头示例

User-Identify20位数字平台编码(本平台)

4.请求方法体示例

/**
 * 保活请求方法体
*/ 
@Data
public class KeepaliveRequestObject {

    private KeepaliveObject KeepaliveObject;
    
    @Data
    public static class KeepaliveObject {
        private String DeviceID;
    }
}

==========================================================================

JSON字符串:"{\"KeepaliveObject\":{\"DeviceID\":\"40000000000000000000\"}}";

二、保活代码示例

/**
 * GA/T 1400 保活 demo
 */
public class Gat1400KeepAliveDemo {

	public void keepalive() {
	
	    // 20位平台编码 鉴权
		String deviceId = "40000000000000000000";
        // 请求头设置
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8"));
        headers.set("User-Identify", deviceId);
        headers.setConnection("keepalive");

        // 参数设置
        KeepaliveRequestObject keepaliveRequestObject = new KeepaliveRequestObject();
        KeepaliveRequestObject.KeepaliveObject keepaliveObject = new KeepaliveRequestObject.KeepaliveObject();
        keepaliveObject.setDeviceID(deviceId);
        keepaliveRequestObject.setKeepaliveObject(keepaliveObject);

        HttpEntity<String> httpEntity = new HttpEntity<>(JSONUtil.toJsonStr(keepaliveRequestObject), headers);

        // 请求执行
        ResponseEntity<String> responseEntity = restTemplate.exchange(keepaliveUrl, HttpMethod.POST, httpEntity, String.class);
        if (org.apache.http.HttpStatus.SC_OK == responseEntity.getStatusCode().value()) {
            log.info("保活成功");
        } else {
        	log.info("保活失败");
        }
    }
} 

请求结果示例

{"ResponseStatusObject":{"RequestURL":"/VIID/System/Keepalive","StatusCode":0,"StatusString":"保活成功","Id":"40000000000000000000","LocalTime":"20230411165449"}}

参考材料

hxrui/gat1400

posted @ 2023-04-11 17:11  御坂10027  阅读(6)  评论(0)    收藏  举报  来源