tcp数据粘包处理

This commit is contained in:
qiminbao
2025-09-23 11:31:10 +08:00
parent 0299bbcb5d
commit 144b914106
@@ -71,14 +71,14 @@ public class AgentDecoderHandler extends ChannelInboundHandlerAdapter {
if(endsWith){ if(endsWith){
lruCache.remove(sessionManager.client(ctx)); lruCache.remove(sessionManager.client(ctx));
tmpMsgSize = 0; tmpMsgSize = 0;
sb.append(arr_msg[0]+"@tong-ran"); // sb.append(arr_msg[0]+"@tong-ran");
// content = arr_msg[0]+"@tong-ran"; content = arr_msg[0]+"@tong-ran";
}else{ }else{
lruCache.remove(sessionManager.client(ctx)); lruCache.remove(sessionManager.client(ctx));
tmpMsgSize = 0; tmpMsgSize = 0;
sb.append(arr_msg[0]); // sb.append(arr_msg[0]);
// content = arr_msg[0]; content = arr_msg[0];
lruCache.put(sessionManager.client(ctx), sb.toString(), DateUnit.SECOND.getMillis() * 5000); lruCache.put(sessionManager.client(ctx), content, DateUnit.SECOND.getMillis() * 5000);
} }
} }
//判定是否粘包 //判定是否粘包
@@ -90,17 +90,19 @@ public class AgentDecoderHandler extends ChannelInboundHandlerAdapter {
if(i == arr_msg.length -1){ if(i == arr_msg.length -1){
lruCache.put(sessionManager.client(ctx), arr_msg[i], DateUnit.SECOND.getMillis() * 5000); lruCache.put(sessionManager.client(ctx), arr_msg[i], DateUnit.SECOND.getMillis() * 5000);
}else{ }else{
sb.append(arr_msg[i].replaceAll("agent-client:","")+"@tong-ran"); content += arr_msg[i].replaceAll("agent-client:","")+"@tong-ran";
// sb.append(arr_msg[i].replaceAll("agent-client:","")+"@tong-ran");
} }
} }
}else{ }else{
lruCache.remove(sessionManager.client(ctx)); lruCache.remove(sessionManager.client(ctx));
tmpMsgSize = 0; tmpMsgSize = 0;
sb.append(String.join("@tong-ran", arr_msg)); // sb.append(String.join("@tong-ran", arr_msg));
content = String.join("@tong-ran", arr_msg);
} }
} }
} }
content = sb.toString(); // content = sb.toString();
if (tmpMsgSize > 0) { if (tmpMsgSize > 0) {
content = tempMsg + messages; content = tempMsg + messages;
endsWith = content.endsWith("@tong-ran"); endsWith = content.endsWith("@tong-ran");