From 36a842a29da92eeb1f16c55711fef1234097672c Mon Sep 17 00:00:00 2001 From: tanpenggood Date: Sun, 25 May 2025 08:42:11 +0800 Subject: [PATCH 1/3] typo(server/NettyChannelBrother.java): "control" typo --- .../dekstop/server/netty/NettyChannelBrother.java | 4 ++-- .../dekstop/server/netty/NettyChannelManager.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelBrother.java b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelBrother.java index 5366f96..3f5ee9a 100644 --- a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelBrother.java +++ b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelBrother.java @@ -25,7 +25,7 @@ public NettyChannelBrother(Channel controller, Channel controlled) { this.controlled = controlled; } - public void startControll() { + public void startControl() { NettyUtils.updateControllFlag(controller, Constants.CONTROLLER); NettyUtils.updateControllDeviceCode(controller, NettyUtils.getDeviceCode(controlled)); NettyUtils.updateControllFlag(controlled, Constants.CONTROLLED); @@ -35,7 +35,7 @@ public void startControll() { } - public void stopControll(byte stopType) { + public void stopControl(byte stopType) { NettyUtils.updateControllFlag(controller, null); NettyUtils.updateControllDeviceCode(controller, null); NettyUtils.updateControllFlag(controlled, null); diff --git a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java index 5be2a16..06f3688 100644 --- a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java +++ b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java @@ -39,14 +39,14 @@ public static synchronized void removeChannelAndBrother(Channel channel) { channelBrother = channelBrotherMap.remove(NettyUtils.getControllDeviceCode(channel)); } if (channelBrother != null) { - channelBrother.stopControll(CmdReqCapture.STOP_CAPTURE_CHANNEL_INACTIVE); + channelBrother.stopControl(CmdReqCapture.STOP_CAPTURE_CHANNEL_INACTIVE); } } } public static void bindChannelBrother(Channel controller, Channel controlled) { NettyChannelBrother channelBrother = new NettyChannelBrother(controller, controlled); - channelBrother.startControll(); + channelBrother.startControl(); channelBrotherMap.putIfAbsent(NettyUtils.getDeviceCode(controlled), channelBrother); } @@ -54,7 +54,7 @@ public static void bindChannelBrother(Channel controller, Channel controlled) { public static NettyChannelBrother unbindChannelBrother(byte stopType, Channel controlled) { NettyChannelBrother channelBrother = channelBrotherMap.get(NettyUtils.getDeviceCode(controlled)); if (channelBrother != null) { - channelBrother.stopControll(stopType); + channelBrother.stopControl(stopType); channelBrotherMap.remove(NettyUtils.getDeviceCode(controlled)); } return channelBrother; From 8a8d6299d07d63a8d3ac78c8a1346f6d92e2b2eb Mon Sep 17 00:00:00 2001 From: tanpenggood Date: Sun, 25 May 2025 09:58:27 +0800 Subject: [PATCH 2/3] feat(server): Add /web/info API in server --- .../server/netty/NettyChannelManager.java | 7 +++++ .../server/web/controller/WebController.java | 28 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java diff --git a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java index 06f3688..ec84260 100644 --- a/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java +++ b/server/src/main/java/io/github/springstudent/dekstop/server/netty/NettyChannelManager.java @@ -76,5 +76,12 @@ public static Channel getControlledChannel(Channel controller) { return null; } + public static Map getDeviceCodeChannelMap() { + return deviceCodeChannelMap; + } + + public static Map getChannelBrotherMap() { + return channelBrotherMap; + } } diff --git a/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java b/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java new file mode 100644 index 0000000..850c209 --- /dev/null +++ b/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java @@ -0,0 +1,28 @@ +package io.github.springstudent.dekstop.server.web.controller; + +import io.github.springstudent.dekstop.server.netty.NettyChannelManager; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author tanpenggood + * @date 2025/05/25 8:46 + **/ +@RestController +@RequestMapping("/web") +public class WebController { + + @GetMapping("/info") + public ResponseEntity> info() { + Map result = new HashMap<>(); + result.put("deviceCodeChannel", NettyChannelManager.getDeviceCodeChannelMap()); + result.put("channelBrother", NettyChannelManager.getChannelBrotherMap()); + return ResponseEntity.ok(result); + } + +} From b20240c95a9116d7462117e2daccf9c3e24c0832 Mon Sep 17 00:00:00 2001 From: tanpenggood Date: Sun, 25 May 2025 21:44:53 +0800 Subject: [PATCH 3/3] feat(server): Add API /web/unbindChannelBrother/{controlledDeviceCode} --- .../server/web/controller/WebController.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java b/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java index 850c209..df1ab87 100644 --- a/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java +++ b/server/src/main/java/io/github/springstudent/dekstop/server/web/controller/WebController.java @@ -1,13 +1,18 @@ package io.github.springstudent.dekstop.server.web.controller; +import io.github.springstudent.dekstop.common.command.CmdReqCapture; +import io.github.springstudent.dekstop.server.netty.NettyChannelBrother; import io.github.springstudent.dekstop.server.netty.NettyChannelManager; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** * @author tanpenggood @@ -25,4 +30,12 @@ public ResponseEntity> info() { return ResponseEntity.ok(result); } + @GetMapping("/unbindChannelBrother/{controlledDeviceCode}") + public ResponseEntity> unbindChannelBrother(@PathVariable String controlledDeviceCode) { + Map channelBrotherMap = NettyChannelManager.getChannelBrotherMap(); + NettyChannelBrother channelBrother = channelBrotherMap.get(controlledDeviceCode); + Optional.ofNullable(channelBrother).ifPresent(s -> NettyChannelManager.unbindChannelBrother(CmdReqCapture.STOP_CAPTURE, channelBrother.getControlled())); + return ResponseEntity.ok(Collections.singletonMap(controlledDeviceCode, channelBrother)); + } + }