All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.iteaj.iot.client.proxy.ProxyClientProtocol Maven / Gradle / Ivy

package com.iteaj.iot.client.proxy;

import com.iteaj.iot.client.protocol.ClientInitiativeProtocol;
import com.iteaj.iot.protocol.CommonProtocolType;
import com.iteaj.iot.proxy.ProxyClientMessage;
import com.iteaj.iot.proxy.ProxyClientMessageUtil;
import com.iteaj.iot.proxy.ProxyClientResponseBody;

/**
 * 应用程序客户端和服务端通信的协议
 */
public class ProxyClientProtocol extends ClientInitiativeProtocol {

    /**
     * 执行状态说明
     */
    private String reason;

    public ProxyClientProtocol(ProxyClientMessage requestMessage) {
        this.requestMessage = requestMessage;
    }

    @Override
    protected ProxyClientMessage doBuildRequestMessage() {
        // 设置客户端编号
        ProxyClient iotClient = (ProxyClient) getIotClient();
        this.requestMessage.getHead().setEquipCode(iotClient.getDeviceSn());

        return ProxyClientMessageUtil.encoder(this.requestMessage);
    }

    public static ProxyClientProtocol buildRequestProtocol(ProxyClientMessage message) {
        return new ProxyClientProtocol(message);
    }

    @Override
    public void doBuildResponseMessage(ProxyClientMessage message) {
        ProxyClientResponseBody body = (ProxyClientResponseBody)message.getBody();

        this.reason = body.getReason();
        this.setExecStatus(body.getStatus());
    }

    @Override
    public ProxyClientProtocol timeout(long timeout) {
        return (ProxyClientProtocol) super.timeout(timeout);
    }

    @Override
    public CommonProtocolType protocolType() {
        return CommonProtocolType.TCClint;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy