tcp数据粘包处理
This commit is contained in:
@@ -119,26 +119,30 @@ public class AgentDecoderHandler extends ChannelInboundHandlerAdapter {
|
|||||||
if(endsWith){
|
if(endsWith){
|
||||||
content = content.replaceAll("agent-client:","");
|
content = content.replaceAll("agent-client:","");
|
||||||
String[] arr = content.split("@tong-ran");
|
String[] arr = content.split("@tong-ran");
|
||||||
for (String message : arr) {
|
try {
|
||||||
JSONObject jsonObject = JSONObject.parseObject(message);
|
for (String message : arr) {
|
||||||
String clientId = jsonObject.getString("clientId");
|
JSONObject jsonObject = JSONObject.parseObject(message);
|
||||||
String dataType = jsonObject.getString("dataType");
|
String clientId = jsonObject.getString("clientId");
|
||||||
String data = jsonObject.getString("data");
|
String dataType = jsonObject.getString("dataType");
|
||||||
if(Objects.nonNull(agentDispatcherManager)){
|
String data = jsonObject.getString("data");
|
||||||
AgentHandler msgHandler = agentDispatcherManager.getHandler(dataType + "&" + AgentDispatcher.VersionEnum.V1.value);
|
if(Objects.nonNull(agentDispatcherManager)){
|
||||||
if (ObjectUtil.isNotEmpty(msgHandler)) {
|
AgentHandler msgHandler = agentDispatcherManager.getHandler(dataType + "&" + AgentDispatcher.VersionEnum.V1.value);
|
||||||
AssertLog.info("<<[up-after-handle]:clientId:{},type={},[handle-content]={}", clientId, dataType, data);
|
if (ObjectUtil.isNotEmpty(msgHandler)) {
|
||||||
UpMsgResponse response = msgHandler.upHandle(data, clientId );
|
AssertLog.info("<<[up-after-handle]:clientId:{},type={},[handle-content]={}", clientId, dataType, data);
|
||||||
if(Objects.nonNull(response)){
|
UpMsgResponse response = msgHandler.upHandle(data, clientId );
|
||||||
Message agentMessage = Message.builder().build();
|
if(Objects.nonNull(response)){
|
||||||
agentMessage.setClientId(clientId);
|
Message agentMessage = Message.builder().build();
|
||||||
agentMessage.setDataType(response.getDataType());
|
agentMessage.setClientId(clientId);
|
||||||
agentMessage.setData(response.getContent());
|
agentMessage.setDataType(response.getDataType());
|
||||||
ctx.fireChannelRead(agentMessage);//传递到下一个handler
|
agentMessage.setData(response.getContent());
|
||||||
|
ctx.fireChannelRead(agentMessage);//传递到下一个handler
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
AssertLog.error("=====channelRead:{}=====" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isClear) {
|
if (isClear) {
|
||||||
|
|||||||
Reference in New Issue
Block a user