package com.ld.igds.protocol.quantity.shuhan.server;
|
|
import com.alibaba.fastjson.JSON;
|
import com.ld.igds.protocol.quantity.shuhan.ShuHanUtils;
|
import com.ld.igds.protocol.quantity.shuhan.analysis.AnalysisService;
|
import com.ld.igds.protocol.quantity.shuhan.command.Message;
|
import com.ld.igds.util.SpringUtil;
|
import com.ld.io.api.IoMsgConsumer;
|
import com.ld.io.api.IoSession;
|
import lombok.extern.slf4j.Slf4j;
|
|
|
/**
|
* 接收终端返回回来的信息。
|
*
|
* @author vince
|
*/
|
@Slf4j
|
public class MsgConsumer implements IoMsgConsumer {
|
|
private AnalysisService analysisService;
|
|
@Override
|
public void consume(IoSession session, byte[] bytes) {
|
String msg;
|
try {
|
msg = new String(bytes, ShuHanUtils.CHARSET);
|
msg = msg.substring(ShuHanUtils.MSG_START.length());
|
Message message = JSON.parseObject(msg, Message.class);
|
|
//调用解析接口开始解析
|
if (null == analysisService) {
|
analysisService = (AnalysisService) SpringUtil.getBean(AnalysisService.BEAN_ID);
|
}
|
analysisService.analysis(session.getAddress(), session.getPort(), message);
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error(e.getMessage(), e);
|
}
|
}
|
|
}
|