mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-15 02:17:48 +00:00
perf[protocol]: 优化net和protocol的代码结构
This commit is contained in:
1 parent
d7d707992c
commit
bcefc2ab4f
5 files changed
+31
-29
No files matched your search
@@ -16,9 +16,8 @@ package com.zfoo.net.handler.codec.tcp;
|
||||
import com.zfoo.net.NetContext;
|
||||
import com.zfoo.net.packet.model.DecodedPacketInfo;
|
||||
import com.zfoo.net.packet.model.EncodedPacketInfo;
|
||||
import com.zfoo.net.packet.service.PacketService;
|
||||
import com.zfoo.net.util.SessionUtils;
|
||||
import com.zfoo.protocol.ProtocolManager;
|
||||
import com.zfoo.protocol.util.IOUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
@@ -28,7 +27,6 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* header(4byte) + protocolId(2byte) + packet
|
||||
@@ -44,7 +42,7 @@ public class TcpPacketCodecHandler extends ByteToMessageCodec<EncodedPacketInfo>
|
||||
@Override
|
||||
protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
|
||||
// 不够读一个int
|
||||
if (in.readableBytes() <= ProtocolManager.PROTOCOL_HEAD_LENGTH) {
|
||||
if (in.readableBytes() <= PacketService.PACKET_HEAD_LENGTH) {
|
||||
return;
|
||||
}
|
||||
in.markReaderIndex();
|
||||
|
||||
@@ -17,9 +17,8 @@ import com.zfoo.net.NetContext;
|
||||
import com.zfoo.net.handler.codec.tcp.TcpPacketCodecHandler;
|
||||
import com.zfoo.net.packet.model.DecodedPacketInfo;
|
||||
import com.zfoo.net.packet.model.EncodedPacketInfo;
|
||||
import com.zfoo.net.packet.service.PacketService;
|
||||
import com.zfoo.net.util.SessionUtils;
|
||||
import com.zfoo.protocol.ProtocolManager;
|
||||
import com.zfoo.protocol.util.IOUtils;
|
||||
import com.zfoo.protocol.util.JsonUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@@ -33,7 +32,6 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* header(4byte) + protocolId(2byte) + packet
|
||||
@@ -51,7 +49,7 @@ public class WebSocketCodecHandler extends MessageToMessageCodec<WebSocketFrame,
|
||||
ByteBuf in = webSocketFrame.content();
|
||||
|
||||
// 不够读一个int
|
||||
if (in.readableBytes() <= ProtocolManager.PROTOCOL_HEAD_LENGTH) {
|
||||
if (in.readableBytes() <= PacketService.PACKET_HEAD_LENGTH) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,11 @@ public class PacketService implements IPacketService {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(PacketService.class);
|
||||
|
||||
/**
|
||||
* 包体的头部的长度,一个int字节长度
|
||||
*/
|
||||
public static final int PACKET_HEAD_LENGTH = 4;
|
||||
|
||||
/**
|
||||
* 网络包的约定规则如下:
|
||||
* 1. 客户端的请求约定以Request结尾,服务器的响应约定以Response结尾
|
||||
@@ -124,7 +129,7 @@ public class PacketService implements IPacketService {
|
||||
buffer.clear();
|
||||
|
||||
// 预留写入包的长度,一个int字节大小
|
||||
buffer.writeInt(ProtocolManager.PROTOCOL_HEAD_LENGTH);
|
||||
buffer.writeInt(PACKET_HEAD_LENGTH);
|
||||
|
||||
// 写入包packet
|
||||
ProtocolManager.write(buffer, packet);
|
||||
@@ -140,7 +145,7 @@ public class PacketService implements IPacketService {
|
||||
|
||||
int length = buffer.readableBytes();
|
||||
|
||||
int packetLength = length - ProtocolManager.PROTOCOL_HEAD_LENGTH;
|
||||
int packetLength = length - PACKET_HEAD_LENGTH;
|
||||
|
||||
buffer.writerIndex(0);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.zfoo.net.packet.*;
|
||||
import com.zfoo.net.packet.model.DecodedPacketInfo;
|
||||
import com.zfoo.net.packet.model.SignalPacketAttachment;
|
||||
import com.zfoo.net.packet.service.IPacketService;
|
||||
import com.zfoo.protocol.ProtocolManager;
|
||||
import com.zfoo.net.packet.service.PacketService;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import org.junit.Assert;
|
||||
@@ -76,7 +76,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.directBuffer();
|
||||
packetService.write(writeBuff, cm, attachment);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -93,7 +93,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -112,7 +112,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -131,7 +131,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -166,7 +166,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -196,7 +196,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -215,7 +215,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
@@ -243,7 +243,7 @@ public class ProtocolTest {
|
||||
ByteBuf writeBuff = Unpooled.buffer();
|
||||
packetService.write(writeBuff, cm, null);
|
||||
|
||||
writeBuff.readerIndex(ProtocolManager.PROTOCOL_HEAD_LENGTH);// 信息头的长度
|
||||
writeBuff.readerIndex(PacketService.PACKET_HEAD_LENGTH);// 信息头的长度
|
||||
|
||||
DecodedPacketInfo packetInfo = packetService.read(writeBuff);
|
||||
|
||||
|
||||
Reference in new issue
Block a user