

package fr.zng.xxzx.netty.wss;


import fr.zng.xxzx.common.cacheData.ZngCacheData;
import fr.zng.xxzx.common.consts.FrBizConst;
import fr.zng.xxzx.common.util.CommUtil;
import fr.zng.xxzx.util.StringUtil;
import io.netty.channel.ChannelHandlerContext;

import javax.swing.JComponent;


public class BaseNettyHandler {

    protected JComponent cJc;

    protected ChannelHandlerContext chc;
    
    public BaseNettyHandler() {
    }
    /**
     * BaseHandler构造体
     * @param socket
     * @param jc
     */
    public BaseNettyHandler(JComponent jc) {
        this.cJc = jc;
    }

    /**
     * BaseHandler构造体
     * @param socket
     * @param jc
     */
    public BaseNettyHandler(ChannelHandlerContext chc, JComponent jc) {
        this.cJc = jc;
        this.chc = chc;
    }


    /**
     * 应答消息回复
     * @param socket    端口
     * @param encrypt   加密分包项
     * @param equipmentCode 设备
     * @param orgMsgId  原消息ID
     * @param orgSerial 原序列号
     * @param ret   值
     */
    protected void doReply(String msgCode, String encrypt,
        String equipmentCode, String orgMsgId, String orgSerial, String ret) {
        // 组合数据
        String tmp1 = StringUtil.connectString(msgCode, encrypt, equipmentCode, ZngCacheData.getSerialNumber(),
            orgSerial, orgMsgId, ret);
        // 异或值
        String xor = CommUtil.getXor(FrBizConst.MKEY + tmp1);

        String tmp2 = tmp1 + xor;
        // 数据转义
        String data = CommUtil.doEncodeData(tmp2);
        
        final String msg = StringUtil.connectString(FrBizConst.MKEY, data, FrBizConst.MKEY);
        chc.channel().writeAndFlush(msg);
        CommUtil.doPrint("回应：", msg);
    }

}