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