diff --git a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonPacket.java b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonPacket.java index 122659a1..202ed623 100644 --- a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonPacket.java +++ b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonPacket.java @@ -13,6 +13,7 @@ package com.zfoo.net.handler.codec.json; +import com.zfoo.net.router.attachment.IAttachment; import com.zfoo.protocol.IPacket; /** @@ -23,12 +24,18 @@ public class JsonPacket { private short protocolId; - private IPacket packet; + private short attachmentId; - public static JsonPacket valueOf(short protocolId, IPacket packet) { + private IPacket packet; + private IAttachment attachment; + + + public static JsonPacket valueOf(short protocolId, IPacket packet, short attachmentId, IAttachment attachment) { var jsonPacket = new JsonPacket(); jsonPacket.protocolId = protocolId; + jsonPacket.attachmentId = attachmentId; jsonPacket.packet = packet; + jsonPacket.attachment = attachment; return jsonPacket; } @@ -47,4 +54,20 @@ public class JsonPacket { public void setPacket(IPacket packet) { this.packet = packet; } + + public short getAttachmentId() { + return attachmentId; + } + + public void setAttachmentId(short attachmentId) { + this.attachmentId = attachmentId; + } + + public IAttachment getAttachment() { + return attachment; + } + + public void setAttachment(IAttachment attachment) { + this.attachment = attachment; + } } diff --git a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java index 97da57a4..d5120e11 100644 --- a/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java +++ b/net/src/main/java/com/zfoo/net/handler/codec/json/JsonWebSocketCodecHandler.java @@ -15,6 +15,7 @@ package com.zfoo.net.handler.codec.json; import com.zfoo.net.packet.DecodedPacketInfo; import com.zfoo.net.packet.EncodedPacketInfo; +import com.zfoo.net.router.attachment.IAttachment; import com.zfoo.protocol.IPacket; import com.zfoo.protocol.ProtocolManager; import com.zfoo.protocol.buffer.ByteBufUtils; @@ -41,9 +42,15 @@ public class JsonWebSocketCodecHandler extends MessageToMessageCodec= 0) { + var attachmentClass = ProtocolManager.getProtocol(attachmentId).protocolConstructor().getDeclaringClass(); + attachment = (IAttachment) JsonUtils.string2Object(jsonMap.get("attachment"), attachmentClass); + } var protocolClass = ProtocolManager.getProtocol(protocolId).protocolConstructor().getDeclaringClass(); var packet = JsonUtils.string2Object(packetStr, protocolClass); - list.add(DecodedPacketInfo.valueOf((IPacket) packet, null)); + list.add(DecodedPacketInfo.valueOf((IPacket) packet, attachment)); } @Override @@ -51,7 +58,8 @@ public class JsonWebSocketCodecHandler extends MessageToMessageCodec responseFuture = new CompletableFuture<>(); public SignalAttachment() {