package com.ld.igds.protocol.snap.server; import com.alibaba.fastjson.JSON; import com.ld.igds.protocol.snap.AnalysisService; import com.ld.igds.protocol.snap.SnapUtils; import com.ld.igds.util.SpringUtil; import com.ld.io.api.IoMsgConsumer; import com.ld.io.api.IoSession; import lombok.extern.slf4j.Slf4j; /** * */ @Slf4j public class MsgConsumer implements IoMsgConsumer { private AnalysisService analysisService; private static final String CHARSET = "UTF-8"; @Override public void consume(IoSession session, byte[] bytes) { //调用解析接口开始解析 if (null == analysisService) { analysisService = (AnalysisService) SpringUtil.getBean(AnalysisService.BEAN_ID); } try { String message = new String(bytes, CHARSET); message = message.substring(SnapUtils.MSG_BEGIN.length()); Message result = JSON.parseObject(message, Message.class); result.setIp(session.getAddress()); result.setPort(session.getPort()); analysisService.analysis(result); } catch (Exception e) { log.error("抓拍终端-->平台,报文解析异常:{}", e.getMessage()); } } }