From 5d725515de3355f0ec160f19e1f6782e690e38f4 Mon Sep 17 00:00:00 2001 From: jianan <1072772483@qq.com> Date: Mon, 11 Jul 2022 14:50:14 +0800 Subject: [PATCH] =?UTF-8?q?doc[module]:=20=E7=BD=91=E5=85=B3=E6=8E=88?= =?UTF-8?q?=E6=9D=83=20=E5=92=8C=20=E5=BF=83=E8=B7=B3=E6=97=B6=E9=97=B4=20?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- net/src/main/java/com/zfoo/net/core/tcp/TcpClient.java | 2 ++ net/src/main/java/com/zfoo/net/router/Router.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/net/src/main/java/com/zfoo/net/core/tcp/TcpClient.java b/net/src/main/java/com/zfoo/net/core/tcp/TcpClient.java index 46dc8f11..a3fdda63 100644 --- a/net/src/main/java/com/zfoo/net/core/tcp/TcpClient.java +++ b/net/src/main/java/com/zfoo/net/core/tcp/TcpClient.java @@ -42,6 +42,8 @@ public class TcpClient extends AbstractClient { private static class ChannelHandlerInitializer extends ChannelInitializer { @Override protected void initChannel(SocketChannel channel) { + // 可以看出来,这个客户端检测到空闲的时间是60s,相对短一点,这样子就可以发送心跳。 + // 服务器端则是180s,相对长一点,一旦检测到空闲,则把客户端踢掉。 channel.pipeline().addLast(new IdleStateHandler(0, 0, 60)); channel.pipeline().addLast(new ClientIdleHandler()); channel.pipeline().addLast(new TcpCodecHandler()); diff --git a/net/src/main/java/com/zfoo/net/router/Router.java b/net/src/main/java/com/zfoo/net/router/Router.java index f1d5f9dd..9d122559 100644 --- a/net/src/main/java/com/zfoo/net/router/Router.java +++ b/net/src/main/java/com/zfoo/net/router/Router.java @@ -114,13 +114,16 @@ public class Router implements IRouter { if (gatewayAttachment.isClient()) { gatewayAttachment.setClient(false); } else { + // 这里是:别的服务提供者提供授权给网关,比如:在玩家登录后,home服查到了玩家uid,然后发给Gateway服 var gatewaySession = NetContext.getSessionManager().getServerSession(gatewayAttachment.getSid()); if (gatewaySession != null) { var signalAttachmentInGatewayAttachment = gatewayAttachment.getSignalAttachment(); if (signalAttachmentInGatewayAttachment != null) { signalAttachmentInGatewayAttachment.setClient(false); } + // 网关授权,授权完成直接返回 + // 注意:这个 AuthUidToGatewayCheck 是在home的LoginController中处理完登录后,把消息发给网关进行授权 if (AuthUidToGatewayCheck.getAuthProtocolId() == packet.protocolId()) { var uid = ((AuthUidToGatewayCheck) packet).getUid(); if (uid <= 0) {