ref[net]: No need to inherit the IPacket interface anymore

This commit is contained in:
godotg
2023-09-09 09:53:16 +08:00
parent 9f02e197c3
commit 9f7e9e0c3f
75 changed files with 109 additions and 230 deletions
@@ -18,7 +18,6 @@ import com.zfoo.net.core.HostAndPort;
import com.zfoo.net.handler.GatewayRouteHandler;
import com.zfoo.net.handler.codec.tcp.TcpCodecHandler;
import com.zfoo.net.handler.idle.ServerIdleHandler;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.session.Session;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.timeout.IdleStateHandler;
@@ -32,9 +31,9 @@ import java.util.function.BiFunction;
*/
public class GatewayServer extends AbstractServer<SocketChannel> {
private BiFunction<Session, IPacket, Boolean> packetFilter;
private BiFunction<Session, Object, Boolean> packetFilter;
public GatewayServer(HostAndPort host, @Nullable BiFunction<Session, IPacket, Boolean> packetFilter) {
public GatewayServer(HostAndPort host, @Nullable BiFunction<Session, Object, Boolean> packetFilter) {
super(host);
this.packetFilter = packetFilter;
}
@@ -18,7 +18,6 @@ import com.zfoo.net.core.HostAndPort;
import com.zfoo.net.handler.GatewayRouteHandler;
import com.zfoo.net.handler.codec.websocket.WebSocketCodecHandler;
import com.zfoo.net.handler.idle.ServerIdleHandler;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.session.Session;
import com.zfoo.protocol.util.IOUtils;
import io.netty.channel.socket.SocketChannel;
@@ -37,9 +36,9 @@ import java.util.function.BiFunction;
*/
public class WebsocketGatewayServer extends AbstractServer<SocketChannel> {
private BiFunction<Session, IPacket, Boolean> packetFilter;
private BiFunction<Session, Object, Boolean> packetFilter;
public WebsocketGatewayServer(HostAndPort host, @Nullable BiFunction<Session, IPacket, Boolean> packetFilter) {
public WebsocketGatewayServer(HostAndPort host, @Nullable BiFunction<Session, Object, Boolean> packetFilter) {
super(host);
this.packetFilter = packetFilter;
}
@@ -18,7 +18,6 @@ import com.zfoo.net.core.HostAndPort;
import com.zfoo.net.handler.GatewayRouteHandler;
import com.zfoo.net.handler.codec.websocket.WebSocketCodecHandler;
import com.zfoo.net.handler.idle.ServerIdleHandler;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.session.Session;
import com.zfoo.protocol.util.IOUtils;
import io.netty.channel.socket.SocketChannel;
@@ -43,9 +42,9 @@ public class WebsocketSslGatewayServer extends AbstractServer<SocketChannel> {
private SslContext sslContext;
private BiFunction<Session, IPacket, Boolean> packetFilter;
private BiFunction<Session, Object, Boolean> packetFilter;
public WebsocketSslGatewayServer(HostAndPort host, InputStream pem, InputStream key, @Nullable BiFunction<Session, IPacket, Boolean> packetFilter) {
public WebsocketSslGatewayServer(HostAndPort host, InputStream pem, InputStream key, @Nullable BiFunction<Session, Object, Boolean> packetFilter) {
super(host);
try {
this.sslContext = SslContextBuilder.forServer(pem, key).build();
@@ -13,7 +13,6 @@
package com.zfoo.net.core.gateway.model;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 22)
public class AuthUidAsk implements IPacket {
public class AuthUidAsk {
private String gatewayHostAndPort;
@@ -13,7 +13,6 @@
package com.zfoo.net.core.gateway.model;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,7 +22,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 20)
public class AuthUidToGatewayCheck implements IPacket {
public class AuthUidToGatewayCheck {
private long uid;
@@ -13,7 +13,6 @@
package com.zfoo.net.core.gateway.model;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,7 +22,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 21)
public class AuthUidToGatewayConfirm implements IPacket {
public class AuthUidToGatewayConfirm {
private long uid;
@@ -13,7 +13,6 @@
package com.zfoo.net.core.gateway.model;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 23)
public class GatewaySessionInactiveAsk implements IPacket {
public class GatewaySessionInactiveAsk {
private String gatewayHostAndPort;
@@ -13,7 +13,6 @@
package com.zfoo.net.core.gateway.model;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.Map;
@@ -25,7 +24,7 @@ import java.util.Map;
* @version 3.0
*/
@Protocol(id = 24)
public class GatewaySynchronizeSidAsk implements IPacket {
public class GatewaySynchronizeSidAsk {
private String gatewayHostAndPort;
@@ -18,7 +18,6 @@ import com.zfoo.net.core.HostAndPort;
import com.zfoo.net.handler.GatewayRouteHandler;
import com.zfoo.net.handler.codec.jprotobuf.JProtobufTcpCodecHandler;
import com.zfoo.net.handler.idle.ServerIdleHandler;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.session.Session;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.timeout.IdleStateHandler;
@@ -32,9 +31,9 @@ import java.util.function.BiFunction;
*/
public class JProtobufGatewayServer extends AbstractServer<SocketChannel> {
private final BiFunction<Session, IPacket, Boolean> packetFilter;
private final BiFunction<Session, Object, Boolean> packetFilter;
public JProtobufGatewayServer(HostAndPort host, @Nullable BiFunction<Session, IPacket, Boolean> packetFilter) {
public JProtobufGatewayServer(HostAndPort host, @Nullable BiFunction<Session, Object, Boolean> packetFilter) {
super(host);
this.packetFilter = packetFilter;
}
@@ -19,12 +19,10 @@ import com.zfoo.net.consumer.balancer.ConsistentHashConsumerLoadBalancer;
import com.zfoo.net.core.gateway.IGatewayLoadBalancer;
import com.zfoo.net.core.gateway.model.GatewaySessionInactiveEvent;
import com.zfoo.net.packet.DecodedPacketInfo;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.packet.common.Heartbeat;
import com.zfoo.net.packet.common.Ping;
import com.zfoo.net.packet.common.Pong;
import com.zfoo.net.router.attachment.GatewayAttachment;
import com.zfoo.net.router.attachment.IAttachment;
import com.zfoo.net.session.Session;
import com.zfoo.net.util.SessionUtils;
import com.zfoo.protocol.util.JsonUtils;
@@ -48,11 +46,11 @@ public class GatewayRouteHandler extends ServerRouteHandler {
private static final Logger logger = LoggerFactory.getLogger(GatewayRouteHandler.class);
public static final BiFunction<Session, IPacket, Boolean> DEFAULT_PACKER_FILTER = (session, packet) -> Boolean.FALSE;
public static final BiFunction<Session, Object, Boolean> DEFAULT_PACKER_FILTER = (session, packet) -> Boolean.FALSE;
private final BiFunction<Session, IPacket, Boolean> packetFilter;
private final BiFunction<Session, Object, Boolean> packetFilter;
public GatewayRouteHandler(@Nullable BiFunction<Session, IPacket, Boolean> packetFilter) {
public GatewayRouteHandler(@Nullable BiFunction<Session, Object, Boolean> packetFilter) {
this.packetFilter = Objects.requireNonNullElse(packetFilter, DEFAULT_PACKER_FILTER);
}
@@ -110,7 +108,7 @@ public class GatewayRouteHandler extends ServerRouteHandler {
/**
* 转发网关收到的包到Provider
*/
private void forwardingPacket(IPacket packet, IAttachment attachment, Object argument) {
private void forwardingPacket(Object packet, Object attachment, Object argument) {
try {
var consumerSession = ConsistentHashConsumerLoadBalancer.getInstance().loadBalancer(packet, argument);
NetContext.getRouter().send(consumerSession, packet, attachment);
@@ -14,7 +14,6 @@ package com.zfoo.net.handler.codec.http;
import com.zfoo.net.packet.DecodedPacketInfo;
import com.zfoo.net.packet.EncodedPacketInfo;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.packet.common.Message;
import com.zfoo.net.router.attachment.HttpAttachment;
import com.zfoo.protocol.util.JsonUtils;
@@ -48,7 +47,7 @@ public class HttpCodecHandler extends MessageToMessageCodec<FullHttpRequest, Enc
@Override
protected void encode(ChannelHandlerContext channelHandlerContext, EncodedPacketInfo out, List<Object> list) {
var packet = (IPacket) out.getPacket();
var packet = out.getPacket();
var attachment = (HttpAttachment) out.getAttachment();
var protocolVersion = attachment.getFullHttpRequest().protocolVersion();
@@ -16,7 +16,6 @@ package com.zfoo.net.handler.codec.json;
import com.zfoo.net.packet.DecodedPacketInfo;
import com.zfoo.net.packet.EncodedPacketInfo;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.router.attachment.IAttachment;
import com.zfoo.protocol.ProtocolManager;
import com.zfoo.protocol.buffer.ByteBufUtils;
import com.zfoo.protocol.util.JsonUtils;
@@ -43,12 +42,12 @@ public class JsonWebSocketCodecHandler extends MessageToMessageCodec<WebSocketFr
var protocolId = Short.parseShort(jsonMap.get("protocolId"));
var packetStr = jsonMap.get("packet");
var attachmentStr = jsonMap.get("attachmentId");
IAttachment attachment = null;
Object attachment = null;
if (StringUtils.isNotEmpty(attachmentStr)) {
var attachmentId = Short.parseShort(attachmentStr);
if (attachmentId >= 0) {
var attachmentClass = ProtocolManager.getProtocol(attachmentId).protocolConstructor().getDeclaringClass();
attachment = (IAttachment) JsonUtils.string2Object(jsonMap.get("attachment"), attachmentClass);
attachment = JsonUtils.string2Object(jsonMap.get("attachment"), attachmentClass);
}
}
@@ -12,7 +12,6 @@
package com.zfoo.net.packet;
import com.zfoo.net.router.attachment.IAttachment;
/**
* @author godotg
@@ -23,15 +22,15 @@ public class DecodedPacketInfo {
/**
* 解码后的包
*/
private IPacket packet;
private Object packet;
/**
* 解码后的包的附加包
*/
private IAttachment attachment;
private Object attachment;
public static DecodedPacketInfo valueOf(IPacket packet, IAttachment attachment) {
public static DecodedPacketInfo valueOf(Object packet, Object attachment) {
DecodedPacketInfo packetInfo = new DecodedPacketInfo();
packetInfo.packet = packet;
packetInfo.attachment = attachment;
@@ -39,20 +38,19 @@ public class DecodedPacketInfo {
}
public IPacket getPacket() {
public Object getPacket() {
return packet;
}
public void setPacket(IPacket packet) {
public void setPacket(Object packet) {
this.packet = packet;
}
public IAttachment getAttachment() {
public Object getAttachment() {
return attachment;
}
public void setAttachment(IAttachment attachment) {
public void setAttachment(Object attachment) {
this.attachment = attachment;
}
}
@@ -13,7 +13,6 @@
package com.zfoo.net.packet;
import com.zfoo.net.NetContext;
import com.zfoo.net.router.attachment.IAttachment;
import com.zfoo.net.router.attachment.SignalOnlyAttachment;
import com.zfoo.net.router.route.PacketBus;
import com.zfoo.protocol.ProtocolManager;
@@ -151,8 +150,8 @@ public class PacketService implements IPacketService {
var packet = ProtocolManager.read(buffer);
// 解析包的附加包
var hasAttachment = ByteBufUtils.tryReadBoolean(buffer);
var attachment = hasAttachment ? ((IAttachment) ProtocolManager.read(buffer)) : null;
return DecodedPacketInfo.valueOf((IPacket) packet, attachment);
var attachment = hasAttachment ? (ProtocolManager.read(buffer)) : null;
return DecodedPacketInfo.valueOf(packet, attachment);
}
@Override
@@ -27,7 +27,7 @@ import org.slf4j.helpers.MessageFormatter;
*/
@ProtobufClass
@Protocol(id = 101)
public class Error implements IPacket {
public class Error {
@Protobuf(order = 1)
private int module;
@@ -14,7 +14,6 @@
package com.zfoo.net.packet.common;
import com.baidu.bjf.remoting.protobuf.annotation.ProtobufClass;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,6 +22,6 @@ import com.zfoo.protocol.anno.Protocol;
*/
@ProtobufClass
@Protocol(id = 102)
public class Heartbeat implements IPacket {
public class Heartbeat {
}
@@ -26,7 +26,7 @@ import com.zfoo.protocol.anno.Protocol;
*/
@ProtobufClass
@Protocol(id = 100)
public class Message implements IPacket {
public class Message {
private byte module;
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.Objects;
@@ -25,7 +24,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 110)
public class PairIntLong implements IPacket {
public class PairIntLong {
@JsonSerialize(using = ToStringSerializer.class)
private int key;
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -25,7 +24,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 113)
public class PairLS implements IPacket {
public class PairLS {
@JsonSerialize(using = ToStringSerializer.class)
private long key;
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,7 +22,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 111)
public class PairLong implements IPacket {
public class PairLong {
@JsonSerialize(using = ToStringSerializer.class)
private long key;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.common;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 112)
public class PairString implements IPacket {
public class PairString {
private String key;
@@ -14,7 +14,6 @@
package com.zfoo.net.packet.common;
import com.baidu.bjf.remoting.protobuf.annotation.ProtobufClass;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,6 +22,6 @@ import com.zfoo.protocol.anno.Protocol;
*/
@ProtobufClass
@Protocol(id = 103)
public class Ping implements IPacket {
public class Ping {
}
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import com.baidu.bjf.remoting.protobuf.annotation.ProtobufClass;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -24,7 +23,7 @@ import com.zfoo.protocol.anno.Protocol;
*/
@ProtobufClass
@Protocol(id = 104)
public class Pong implements IPacket {
public class Pong {
/**
* 服务器当前的时间戳
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,7 +22,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 117)
public class TripleLLS implements IPacket {
public class TripleLLS {
@JsonSerialize(using = ToStringSerializer.class)
private long left;
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -25,7 +24,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 116)
public class TripleLSS implements IPacket {
public class TripleLSS {
@JsonSerialize(using = ToStringSerializer.class)
private long left;
@@ -15,7 +15,6 @@ package com.zfoo.net.packet.common;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -23,7 +22,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 114)
public class TripleLong implements IPacket {
public class TripleLong {
@JsonSerialize(using = ToStringSerializer.class)
private long left;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.common;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 115)
public class TripleString implements IPacket {
public class TripleString {
private String left;
private String middle;
@@ -24,58 +24,51 @@ public enum AttachmentType {
/**
* synchronous or asynchronous attachment
*/
SIGNAL_PACKET((byte) 0, SignalAttachment.class),
SIGNAL_PACKET(SignalAttachment.class),
SIGNAL_ONLY_PACKET((byte) 1, SignalOnlyAttachment.class),
SIGNAL_ONLY_PACKET(SignalOnlyAttachment.class),
/**
* gateway attachment
*/
GATEWAY_PACKET((byte) 2, GatewayAttachment.class),
GATEWAY_PACKET(GatewayAttachment.class),
/**
* udp attachment
*/
UDP_PACKET((byte) 3, UdpAttachment.class),
UDP_PACKET(UdpAttachment.class),
/**
* http attachment
*/
HTTP_PACKET((byte) 4, HttpAttachment.class),
HTTP_PACKET(HttpAttachment.class),
/**
* not used attachment
*/
NO_ANSWER_PACKET((byte) 5, NoAnswerAttachment.class),
NO_ANSWER_PACKET(NoAnswerAttachment.class),
;
public static final Map<Byte, AttachmentType> map = new HashMap<>(values().length);
public static final Map<Class<?>, AttachmentType> map = new HashMap<>();
static {
for (var packetType : AttachmentType.values()) {
map.put(packetType.packetType, packetType);
map.put(packetType.clazz, packetType);
}
}
private final byte packetType;
private final Class<?> clazz;
public byte getPacketType() {
return packetType;
}
private final Class<? extends IAttachment> clazz;
AttachmentType(byte packetType, Class<? extends IAttachment> clazz) {
this.packetType = packetType;
AttachmentType(Class<?> clazz) {
this.clazz = clazz;
}
public static AttachmentType getPacketType(byte packetType) {
return map.getOrDefault(packetType, AttachmentType.NO_ANSWER_PACKET);
public static boolean isAttachmentClass(Class<?> attachmentClass) {
return map.containsKey(attachmentClass);
}
}
@@ -20,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 2)
public class GatewayAttachment implements IAttachment {
public class GatewayAttachment {
/**
* session id
@@ -67,11 +67,6 @@ public class GatewayAttachment implements IAttachment {
}
@Override
public AttachmentType packetType() {
return AttachmentType.GATEWAY_PACKET;
}
/**
* EN:Used to determine which thread the message is processed on
* CN:用来确定这条消息在哪一个线程处理
@@ -85,22 +80,19 @@ public class GatewayAttachment implements IAttachment {
this.taskExecutorHashParam = argument.hashCode();
}
public void wrapAttachment(IAttachment attachment) {
public void wrapAttachment(Object attachment) {
if (attachment == null) {
return;
}
switch (attachment.packetType()) {
case SIGNAL_ONLY_PACKET:
signalOnlyAttachment = (SignalOnlyAttachment) attachment;
break;
case SIGNAL_PACKET:
signalAttachment = (SignalAttachment) attachment;
break;
default:
var attachmentClass = attachment.getClass();
if (attachmentClass == SignalOnlyAttachment.class) {
signalOnlyAttachment = (SignalOnlyAttachment) attachment;
} else if (attachmentClass == SignalAttachment.class) {
signalAttachment = (SignalAttachment) attachment;
}
}
public IAttachment attachment() {
public Object attachment() {
if (signalAttachment != null) {
return signalAttachment;
}
@@ -21,7 +21,7 @@ import io.netty.handler.codec.http.HttpResponseStatus;
* @version 3.0
*/
@Protocol(id = 4)
public class HttpAttachment implements IAttachment {
public class HttpAttachment {
private long uid;
@@ -40,10 +40,6 @@ public class HttpAttachment implements IAttachment {
return attachment;
}
@Override
public AttachmentType packetType() {
return AttachmentType.HTTP_PACKET;
}
/**
* EN:Used to determine which thread the message is processed on
@@ -1,25 +0,0 @@
/*
* Copyright (C) 2020 The zfoo Authors
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and limitations under the License.
*/
package com.zfoo.net.router.attachment;
import com.zfoo.net.packet.IPacket;
/**
* @author godotg
* @version 3.0
*/
public interface IAttachment extends IPacket {
AttachmentType packetType();
}
@@ -21,7 +21,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 5)
public class NoAnswerAttachment implements IAttachment {
public class NoAnswerAttachment {
private int taskExecutorHash;
public static NoAnswerAttachment valueOf(int taskExecutorHash) {
@@ -30,11 +30,6 @@ public class NoAnswerAttachment implements IAttachment {
return attachment;
}
@Override
public AttachmentType packetType() {
return AttachmentType.NO_ANSWER_PACKET;
}
public int getTaskExecutorHash() {
return taskExecutorHash;
}
@@ -24,7 +24,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* @version 3.0
*/
@Protocol(id = 0)
public class SignalAttachment implements IAttachment {
public class SignalAttachment {
/**
* EN:Negative signalId are allowed
@@ -64,8 +64,6 @@ public class SignalAttachment implements IAttachment {
public SignalAttachment() {
}
@Override
public AttachmentType packetType() {
return AttachmentType.SIGNAL_PACKET;
}
@@ -21,17 +21,12 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1)
public class SignalOnlyAttachment implements IAttachment {
public class SignalOnlyAttachment {
private int signalId;
private long timestamp;
@Override
public AttachmentType packetType() {
return AttachmentType.SIGNAL_ONLY_PACKET;
}
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -19,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 3)
public class UdpAttachment implements IAttachment {
public class UdpAttachment {
private String host;
private int port;
@@ -31,11 +31,6 @@ public class UdpAttachment implements IAttachment {
return attachment;
}
@Override
public AttachmentType packetType() {
return AttachmentType.UDP_PACKET;
}
public String getHost() {
return host;
}
@@ -13,8 +13,6 @@
package com.zfoo.net.router.receiver;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.router.attachment.IAttachment;
import com.zfoo.net.session.Session;
import com.zfoo.protocol.util.StringUtils;
import com.zfoo.protocol.util.UuidUtils;
@@ -31,8 +29,6 @@ public abstract class EnhanceUtils {
static {
var classArray = new Class<?>[]{
IPacket.class,
IAttachment.class,
IPacketReceiver.class,
Session.class
};
@@ -54,7 +50,7 @@ public abstract class EnhanceUtils {
var packetClazz = definition.getPacketClazz();
var attachmentClazz = definition.getAttachmentClazz();
var enhanceClazz = classPool.makeClass(EnhanceUtils.class.getCanonicalName() + "Dispatcher" + UuidUtils.getLocalIntId());
var enhanceClazz = classPool.makeClass(EnhanceUtils.class.getCanonicalName() + "Route" + UuidUtils.getLocalIntId());
enhanceClazz.addInterface(classPool.get(IPacketReceiver.class.getCanonicalName()));
var field = new CtField(classPool.get(bean.getClass().getCanonicalName()), "bean", enhanceClazz);
@@ -66,7 +62,7 @@ public abstract class EnhanceUtils {
constructor.setModifiers(Modifier.PUBLIC);
enhanceClazz.addConstructor(constructor);
var invokeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "invoke", classPool.get(new String[]{Session.class.getCanonicalName(), IPacket.class.getCanonicalName(), IAttachment.class.getCanonicalName()}), enhanceClazz);
var invokeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "invoke", classPool.get(new String[]{Session.class.getCanonicalName(), Object.class.getCanonicalName(), Object.class.getCanonicalName()}), enhanceClazz);
invokeMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
if (attachmentClazz == null) {
// Cast type(强制类型转换)
@@ -14,10 +14,9 @@
package com.zfoo.net.router.route;
import com.zfoo.net.anno.PacketReceiver;
import com.zfoo.net.packet.IPacket;
import com.zfoo.net.packet.PacketService;
import com.zfoo.net.router.attachment.AttachmentType;
import com.zfoo.net.router.attachment.GatewayAttachment;
import com.zfoo.net.router.attachment.IAttachment;
import com.zfoo.net.router.attachment.SignalAttachment;
import com.zfoo.net.router.receiver.EnhanceUtils;
import com.zfoo.net.router.receiver.IPacketReceiver;
@@ -81,9 +80,7 @@ public abstract class PacketBus {
AssertionUtils.isTrue(Session.class.isAssignableFrom(paramClazzs[0]), "[class:{}] [method:{}],the first parameter must be Session type parameter Exception.", bean.getClass().getName(), method.getName());
AssertionUtils.isTrue(IPacket.class.isAssignableFrom(paramClazzs[1]), "[class:{}] [method:{}],the second parameter must be IPacket type parameter Exception.", bean.getClass().getName(), method.getName());
AssertionUtils.isTrue(paramClazzs.length != 3 || IAttachment.class.isAssignableFrom(paramClazzs[2]), "[class:{}] [method:{}],the third parameter must be IAttachment type parameter Exception.", bean.getClass().getName(), method.getName());
AssertionUtils.isTrue(paramClazzs.length != 3 || AttachmentType.isAttachmentClass(paramClazzs[2]), "[class:{}] [method:{}],the third parameter must be Attachment type parameter Exception.", bean.getClass().getName(), method.getName());
var packetClazz = paramClazzs[1];
var attachmentClazz = paramClazzs.length == 3 ? paramClazzs[2] : null;
@@ -22,7 +22,7 @@ import java.util.Arrays;
* @version 3.0
*/
@Protocol(id = 1119)
public class CM_Array implements IPacket {
public class CM_Array {
private int[] a;
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1112)
public class CM_Float implements IPacket {
public class CM_Float {
private float a;
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1110)
public class CM_Int implements IPacket {
public class CM_Int {
private boolean flag;
@@ -24,7 +24,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1118, enhance = false)
public class CM_List implements IPacket {
public class CM_List {
private List<Integer> list;
@@ -24,7 +24,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1120, enhance = false)
public class CM_Map implements IPacket {
public class CM_Map {
private Map<Integer, Integer> map;
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1114)
public class CM_Object implements IPacket {
public class CM_Object {
private int a;
@@ -25,7 +25,7 @@ import java.util.Set;
* @version 3.0
*/
@Protocol(id = 1121, enhance = false)
public class CM_Set implements IPacket {
public class CM_Set {
private Set<Integer> a;
private Set<ObjectA> b;
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1116)
public class ObjectA implements IPacket {
public class ObjectA {
private int a;
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1117)
public class ObjectB implements IPacket {
public class ObjectB {
private boolean flag;
@@ -20,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1113)
public class SM_Float implements IPacket {
public class SM_Float {
}
@@ -22,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 1111)
public class SM_Int implements IPacket {
public class SM_Int {
private Boolean flag;
@@ -20,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1115)
public class SM_Object implements IPacket {
public class SM_Object {
}
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.csharp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.List;
@@ -25,7 +24,7 @@ import java.util.Set;
* @version 3.0
*/
@Protocol(id = 1165)
public class CM_CSharpRequest implements IPacket {
public class CM_CSharpRequest {
// 注释1
public byte a;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.csharp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1166)
public class CSharpObjectA implements IPacket {
public class CSharpObjectA {
public int value;
public CSharpObjectB objectB;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.csharp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1167)
public class CSharpObjectB implements IPacket {
public class CSharpObjectB {
public boolean flag;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.gateway;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 5000)
public class GatewayToProviderRequest implements IPacket {
public class GatewayToProviderRequest {
private String message;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.gateway;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 5001)
public class GatewayToProviderResponse implements IPacket {
public class GatewayToProviderResponse {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.http;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1700)
public class HttpHelloRequest implements IPacket {
public class HttpHelloRequest {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.http;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1701)
public class HttpHelloResponse implements IPacket {
public class HttpHelloResponse {
private String message;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.jprotobuf;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1500)
public class JProtobufHelloRequest implements IPacket {
public class JProtobufHelloRequest {
@Protobuf(order = 1)
private String message;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.jprotobuf;
import com.baidu.bjf.remoting.protobuf.annotation.Protobuf;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1501)
public class JProtobufHelloResponse implements IPacket {
public class JProtobufHelloResponse {
@Protobuf(order = 1)
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.json;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1600)
public class JsonHelloRequest implements IPacket {
public class JsonHelloRequest {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.json;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1601)
public class JsonHelloResponse implements IPacket {
public class JsonHelloResponse {
private String message;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.provider;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 4001)
public class ProviderMessAnswer implements IPacket {
public class ProviderMessAnswer {
private String message;
public String getMessage() {
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.provider;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -21,7 +20,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 4000)
public class ProviderMessAsk implements IPacket {
public class ProviderMessAsk {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1153)
public class AsyncMessAnswer implements IPacket {
public class AsyncMessAnswer {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1152)
public class AsyncMessAsk implements IPacket {
public class AsyncMessAsk {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1151)
public class SyncMessAnswer implements IPacket {
public class SyncMessAnswer {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1150)
public class SyncMessAsk implements IPacket {
public class SyncMessAsk {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1300)
public class TcpHelloRequest implements IPacket {
public class TcpHelloRequest {
private String message;
public static TcpHelloRequest valueOf(String message) {
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.tcp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1301)
public class TcpHelloResponse implements IPacket {
public class TcpHelloResponse {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.udp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1200)
public class UdpHelloRequest implements IPacket {
public class UdpHelloRequest {
private String message;
public String getMessage() {
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.udp;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1201)
public class UdpHelloResponse implements IPacket {
public class UdpHelloResponse {
private String message;
public String getMessage() {
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.websocket;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.Objects;
@@ -23,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 2071)
public class WebSocketObjectA implements IPacket {
public class WebSocketObjectA {
private int a;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.websocket;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.Objects;
@@ -23,7 +22,7 @@ import java.util.Objects;
* @version 3.0
*/
@Protocol(id = 2072)
public class WebSocketObjectB implements IPacket {
public class WebSocketObjectB {
private boolean flag;
@@ -13,7 +13,6 @@
package com.zfoo.net.packet.websocket;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
import java.util.List;
@@ -25,7 +24,7 @@ import java.util.Set;
* @version 3.0
*/
@Protocol(id = 2070)
public class WebSocketPacketRequest implements IPacket {
public class WebSocketPacketRequest {
private byte a;
private Byte aa;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.websocket;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1400)
public class WebsocketHelloRequest implements IPacket {
public class WebsocketHelloRequest {
private String message;
@@ -12,7 +12,6 @@
package com.zfoo.net.packet.websocket;
import com.zfoo.net.packet.IPacket;
import com.zfoo.protocol.anno.Protocol;
/**
@@ -20,7 +19,7 @@ import com.zfoo.protocol.anno.Protocol;
* @version 3.0
*/
@Protocol(id = 1401)
public class WebsocketHelloResponse implements IPacket {
public class WebsocketHelloResponse {
private String message;
public String getMessage() {