package com.fzzy.protocol.bhzn.server; import com.fzzy.api.utils.BytesUtil; import com.fzzy.api.utils.SpringUtil; import com.fzzy.protocol.bhzn.analysis.AnalysisService; import com.fzzy.protocol.bhzn.cmd.ReMessageBuilder; import com.fzzy.protocol.bhzn.data.IoMessage; import com.ld.io.api.IoMsgConsumer; import com.ld.io.api.IoSession; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * */ @Slf4j public class BhznGrainV2MessageConsumer implements IoMsgConsumer { private AnalysisService analysis; /** * 处理消息 * * @param ioSession * @param bytes */ @Override public void consume(IoSession ioSession, byte[] bytes) { if (null == bytes) { log.error("Reply bytes is null"); return; } //添加信息心跳标记 BhznGrainV2ServerUtils.addHeartBeat(ioSession); try { String hexStr = BytesUtil.bytesToString(bytes); log.info("【"+ioSession.getAddress()+"】主机------->>平台:报文:" + hexStr); hexStr = hexStr.substring(BhznGrainV2ServerUtils.MSG_START.length()); IoMessage ioMessage = ReMessageBuilder.getInstance().buildMessage(hexStr); ioMessage.setIp(ioSession.getAddress()); ioMessage.setPort(ioSession.getPort()); if(null == analysis) analysis = SpringUtil.getBean(AnalysisService.class); analysis.analysis(ioSession.getBusinessKey(), ioMessage); } catch (Exception e) { log.error(e.getMessage(), e); } } }