From 8ac6e8a3050c1f8fcaae5f0834fe4653e7cc37fe Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Mon, 29 Sep 2025 16:55:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E=E6=93=8D=E4=BD=9Chandle?= =?UTF-8?q?r):=20*=20=E6=96=B0=E5=A2=9E=E6=93=8D=E4=BD=9CServerOperation?= =?UTF-8?q?=E7=B1=BB=E4=B8=AD=E6=96=B9=E6=B3=95=E4=BC=9A=E8=AF=9D=E5=BB=BA?= =?UTF-8?q?=E7=AB=8BHandler=EF=BC=8C=E5=B7=B2=E5=9C=A8=E4=B8=8E=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E4=BC=9A=E8=AF=9D=E5=88=9B=E5=BB=BA=E5=90=8E?= =?UTF-8?q?=E5=8F=AF=E8=BF=9B=E8=A1=8C=E6=93=8D=E4=BD=9C=20*=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=94=99=E8=AF=AF=E6=B6=88=E6=81=AF=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dg_lab/websocket/AbstractWebSocketClient.java | 6 +----- .../dg_lab/websocket/AbstractWebSocketServer.java | 4 ---- .../handler/client/ClientDLPBHandlerContextWrapper.java | 2 +- .../websocket/handler/server/DefaultServerOperation.java | 8 +++++++- .../handler/server/ServerDLPBHandlerContextWrapper.java | 2 ++ .../r3944realms/dg_lab/api/operation/ServerOperation.java | 7 +++++++ gradle.properties | 2 +- versionlog.txt | 6 +++++- 8 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketClient.java b/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketClient.java index a00e162..20ddd2d 100644 --- a/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketClient.java +++ b/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketClient.java @@ -384,10 +384,6 @@ public abstract class AbstractWebSocketClient { public final void stop() { stopping(); switch (ClientStatus) { - case WAITING_FOR_INIT -> { - stoppingError("Client is not initialized."); - logger.warn("Not Init. (It shouldn't be happened)"); - } case STARTING -> { stoppingError("Client is already starting."); logger.info("Client is starting, please waiting."); @@ -427,7 +423,7 @@ public abstract class AbstractWebSocketClient { stoppingError("Client is already stopping."); logger.info("Client is already stopping"); } - case STOPPED -> { + case STOPPED, WAITING_FOR_INIT -> { stoppingError("Client has been stopped."); logger.info("Client has stopped"); } diff --git a/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketServer.java b/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketServer.java index c53e49e..3ed6926 100644 --- a/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketServer.java +++ b/Common/src/main/java/com/r3944realms/dg_lab/websocket/AbstractWebSocketServer.java @@ -337,10 +337,6 @@ public abstract class AbstractWebSocketServer { public final void stop() { stopping(); switch (ServerStatus) { - case WAITING_FOR_INIT -> { - stoppingError("Not Init. (It shouldn't be happened)"); - logger.warn("Not Init. (It shouldn't be happened)"); - } case STARTING -> { stoppingError("Server is starting, please waiting."); logger.info("Server is starting, please waiting."); diff --git a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/client/ClientDLPBHandlerContextWrapper.java b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/client/ClientDLPBHandlerContextWrapper.java index 89e57cf..ca1c719 100644 --- a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/client/ClientDLPBHandlerContextWrapper.java +++ b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/client/ClientDLPBHandlerContextWrapper.java @@ -115,7 +115,7 @@ public class ClientDLPBHandlerContextWrapper extends AbstractDgLabPowerBoxHandle //通过构造开启且如果有目标(即连上了APP端)则开启Message对象校验,只有通过校验才能进读取data(雾) dataMsg = PowerBoxMessage.getNullMessage().getMessage(json); //发送对象必须是服务器类型 且 接收者(本客户端)为占位对象类型 或 本客户端对象(名字类型相同),这里取反,只有满足条件才能进入 else读取 data - if( + if ( dataMsg.direction.sender().type != RoleType.T_SERVER && !( diff --git a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/DefaultServerOperation.java b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/DefaultServerOperation.java index 8fbd86d..9143417 100644 --- a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/DefaultServerOperation.java +++ b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/DefaultServerOperation.java @@ -19,6 +19,8 @@ package com.r3944realms.dg_lab.websocket.handler.server; import com.r3944realms.dg_lab.api.operation.ServerOperation; import com.r3944realms.dg_lab.api.websocket.message.PowerBoxMessage; +import java.util.UUID; + /** * The type Default server operation. */ @@ -93,12 +95,16 @@ public class DefaultServerOperation implements ServerOperation { //NOOP } - @Override public void ServerStoppedHandler() { //NOOP } + @Override + public void ClientSessionBuildInHandler(String clientId) { + //NOOP + } + @Override public void InactiveConnectionRemoveHandler(String clientId) { //NOOP diff --git a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/ServerDLPBHandlerContextWrapper.java b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/ServerDLPBHandlerContextWrapper.java index 05db7f3..c22ebb1 100644 --- a/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/ServerDLPBHandlerContextWrapper.java +++ b/Common/src/main/java/com/r3944realms/dg_lab/websocket/handler/server/ServerDLPBHandlerContextWrapper.java @@ -78,6 +78,8 @@ public class ServerDLPBHandlerContextWrapper extends AbstractDgLabPowerBoxHandle Channel().add(session.channel()); Connections().put(clientId, session); logger.info("新的 webSocket 连接已建立, 标识符为{}", clientId); + String finalClientId = clientId; + TryCatch(n -> ((ServerOperation)operation).ClientSessionBuildInHandler(finalClientId)); } @Override diff --git a/CommonApi/src/main/java/com/r3944realms/dg_lab/api/operation/ServerOperation.java b/CommonApi/src/main/java/com/r3944realms/dg_lab/api/operation/ServerOperation.java index 648c2ed..a1ef26d 100644 --- a/CommonApi/src/main/java/com/r3944realms/dg_lab/api/operation/ServerOperation.java +++ b/CommonApi/src/main/java/com/r3944realms/dg_lab/api/operation/ServerOperation.java @@ -19,6 +19,8 @@ package com.r3944realms.dg_lab.api.operation; import com.r3944realms.dg_lab.api.websocket.message.PowerBoxMessage; import org.jetbrains.annotations.Nullable; +import java.util.UUID; + /** * The interface Server operation. */ @@ -56,6 +58,11 @@ public interface ServerOperation extends IOperation { */ void ServerStoppedHandler(); + /** + * 客户端会话连接触发器 + */ + void ClientSessionBuildInHandler(String clientId); + /** * 在定时器里即将被移除的UUID处理 * diff --git a/gradle.properties b/gradle.properties index 5f96082..6ded2b0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=true org.gradle.configuration-cache.problems=warn # ROOT project_name=DgLab -project_version=4.3.11.18 +project_version=4.3.12.18 project_group=top.r3944realms.dg_lab # API diff --git a/versionlog.txt b/versionlog.txt index 32ab082..c771e0a 100644 --- a/versionlog.txt +++ b/versionlog.txt @@ -2,10 +2,14 @@ 统一用4位版本,对于测试性更新统一在其后加-Beta。 修复问题更新为加0.0.0.1,添加/移除新特性加0.0.1.0,小部分重构更新加0.1.0.0,大量重构加1.0.0.0 +2025-09-29-1 +project_version=4.3.12.18 +* 新增操作ServerOperation类中方法会话建立Handler,已在与客户端会话创建后可进行操作 +* 修改错误消息提醒 + 2025-09-23-1 project_version=4.3.11.18 * 添加操作Operation类的Error方法错误的参数,同时移除无参方法 -* 2025-09-21-4 project_version=4.2.11.18