From ead1dd8b997d4c39251dcd21b99d3fffb58c37d8 Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Sun, 11 Jun 2023 09:41:22 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=8E=A7=E5=88=B6=E4=BF=A1=E4=BB=A4?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taoyao/controller/ControlController.java | 24 +++++++++---------- .../protocol/ProtocolControlAdapter.java | 6 ----- .../protocol/control/ControlBellProtocol.java | 9 ++----- .../control/ControlClientRecordProtocol.java | 9 ++----- .../control/ControlConfigAudioProtocol.java | 9 ++----- .../control/ControlConfigVideoProtocol.java | 9 ++----- .../control/ControlPhotographProtocol.java | 8 ++----- .../control/ControlServerRecordProtocol.java | 20 +++++----------- .../control/IControlBellProtocol.java | 20 ++++++++++++++++ .../control/IControlClientRecordProtocol.java | 20 ++++++++++++++++ .../control/IControlConfigAudioProtocol.java | 21 ++++++++++++++++ .../control/IControlConfigVideoProtocol.java | 21 ++++++++++++++++ .../control/IControlPhotographProtocol.java | 19 +++++++++++++++ .../control/IControlServerRecordProtocol.java | 21 ++++++++++++++++ 14 files changed, 150 insertions(+), 66 deletions(-) create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlBellProtocol.java create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlClientRecordProtocol.java create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigAudioProtocol.java create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigVideoProtocol.java create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlPhotographProtocol.java create mode 100644 taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlServerRecordProtocol.java diff --git a/taoyao-signal-server/taoyao-server/src/main/java/com/acgist/taoyao/controller/ControlController.java b/taoyao-signal-server/taoyao-server/src/main/java/com/acgist/taoyao/controller/ControlController.java index 2b4858c..4422ab9 100644 --- a/taoyao-signal-server/taoyao-server/src/main/java/com/acgist/taoyao/controller/ControlController.java +++ b/taoyao-signal-server/taoyao-server/src/main/java/com/acgist/taoyao/controller/ControlController.java @@ -9,12 +9,12 @@ import org.springframework.web.bind.annotation.RestController; import com.acgist.taoyao.boot.config.MediaAudioProperties; import com.acgist.taoyao.boot.config.MediaVideoProperties; import com.acgist.taoyao.boot.model.Message; -import com.acgist.taoyao.signal.protocol.control.ControlBellProtocol; -import com.acgist.taoyao.signal.protocol.control.ControlClientRecordProtocol; -import com.acgist.taoyao.signal.protocol.control.ControlConfigAudioProtocol; -import com.acgist.taoyao.signal.protocol.control.ControlConfigVideoProtocol; -import com.acgist.taoyao.signal.protocol.control.ControlPhotographProtocol; -import com.acgist.taoyao.signal.protocol.control.ControlServerRecordProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlBellProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlClientRecordProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlConfigAudioProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlConfigVideoProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlPhotographProtocol; +import com.acgist.taoyao.signal.protocol.control.IControlServerRecordProtocol; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -34,12 +34,12 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class ControlController { - private final ControlBellProtocol controlBellProtocol; - private final ControlPhotographProtocol controlPhotographProtocol; - private final ControlConfigAudioProtocol controlConfigAudioProtocol; - private final ControlConfigVideoProtocol controlConfigVideoProtocol; - private final ControlClientRecordProtocol controlClientRecordProtocol; - private final ControlServerRecordProtocol controlServerRecordProtocol; + private final IControlBellProtocol controlBellProtocol; + private final IControlPhotographProtocol controlPhotographProtocol; + private final IControlConfigAudioProtocol controlConfigAudioProtocol; + private final IControlConfigVideoProtocol controlConfigVideoProtocol; + private final IControlClientRecordProtocol controlClientRecordProtocol; + private final IControlServerRecordProtocol controlServerRecordProtocol; @Operation(summary = "响铃", description = "响铃控制") @GetMapping("/bell/{clientId}") diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolControlAdapter.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolControlAdapter.java index fb4c8e0..3b1a021 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolControlAdapter.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolControlAdapter.java @@ -2,9 +2,6 @@ package com.acgist.taoyao.signal.protocol; import java.util.Map; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.task.TaskExecutor; - import com.acgist.taoyao.boot.config.Constant; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.boot.model.MessageCodeException; @@ -19,9 +16,6 @@ import com.acgist.taoyao.signal.client.ClientType; */ public abstract class ProtocolControlAdapter extends ProtocolClientAdapter { - @Autowired - protected TaskExecutor taskExecutor; - protected ProtocolControlAdapter(String name, String signal) { super(name, signal); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlBellProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlBellProtocol.java index fa0054a..e9c4379 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlBellProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlBellProtocol.java @@ -28,7 +28,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; "终端->信令服务->终端" } ) -public class ControlBellProtocol extends ProtocolControlAdapter { +public class ControlBellProtocol extends ProtocolControlAdapter implements IControlBellProtocol { private static final String SIGNAL = "control::bell"; @@ -41,12 +41,7 @@ public class ControlBellProtocol extends ProtocolControlAdapter { client.push(targetClient.request(message)); } - /** - * @param clientId 终端ID - * @param enabled 状态 - * - * @return 执行结果 - */ + @Override public Message execute(String clientId, Boolean enabled) { return this.request(clientId, this.build(Map.of(Constant.ENABLED, enabled))); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlClientRecordProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlClientRecordProtocol.java index 6e33289..06526c8 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlClientRecordProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlClientRecordProtocol.java @@ -37,7 +37,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; "终端=>信令服务->目标终端->信令服务->终端" } ) -public class ControlClientRecordProtocol extends ProtocolControlAdapter { +public class ControlClientRecordProtocol extends ProtocolControlAdapter implements IControlClientRecordProtocol { public static final String SIGNAL = "control::client::record"; @@ -51,12 +51,7 @@ public class ControlClientRecordProtocol extends ProtocolControlAdapter { client.push(targetClient.request(message)); } - /** - * @param clientId 终端ID - * @param enabled 状态 - * - * @return 执行结果 - */ + @Override public Message execute(String clientId, Boolean enabled) { this.updateRecordStatus(this.clientManager.clients(clientId), enabled); return this.request(clientId, this.build(Map.of(Constant.ENABLED, enabled))); diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigAudioProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigAudioProtocol.java index 29570c3..2fc4d60 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigAudioProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigAudioProtocol.java @@ -29,7 +29,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; "终端=>信令服务->终端" } ) -public class ControlConfigAudioProtocol extends ProtocolControlAdapter { +public class ControlConfigAudioProtocol extends ProtocolControlAdapter implements IControlConfigAudioProtocol { public static final String SIGNAL = "control::config::audio"; @@ -42,12 +42,7 @@ public class ControlConfigAudioProtocol extends ProtocolControlAdapter { client.push(targetClient.request(message)); } - /** - * @param clientId 终端ID - * @param mediaAudioProperties 音频配置 - * - * @return 执行结果 - */ + @Override public Message execute(String clientId, MediaAudioProperties mediaAudioProperties) { return this.request(clientId, this.build(mediaAudioProperties)); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigVideoProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigVideoProtocol.java index c9a4e95..5c14ea7 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigVideoProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlConfigVideoProtocol.java @@ -29,7 +29,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; "终端=>信令服务->终端" } ) -public class ControlConfigVideoProtocol extends ProtocolControlAdapter { +public class ControlConfigVideoProtocol extends ProtocolControlAdapter implements IControlConfigVideoProtocol { public static final String SIGNAL = "control::config::video"; @@ -42,12 +42,7 @@ public class ControlConfigVideoProtocol extends ProtocolControlAdapter { client.push(targetClient.request(message)); } - /** - * @param clientId 终端ID - * @param mediaVideoProperties 视频配置 - * - * @return 执行结果 - */ + @Override public Message execute(String clientId, MediaVideoProperties mediaVideoProperties) { return this.request(clientId, this.build(mediaVideoProperties)); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlPhotographProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlPhotographProtocol.java index bdf30b7..e385abd 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlPhotographProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlPhotographProtocol.java @@ -33,7 +33,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; "终端=>信令服务->目标终端->信令服务->终端" } ) -public class ControlPhotographProtocol extends ProtocolControlAdapter { +public class ControlPhotographProtocol extends ProtocolControlAdapter implements IControlPhotographProtocol { public static final String SIGNAL = "control::photograph"; @@ -46,11 +46,7 @@ public class ControlPhotographProtocol extends ProtocolControlAdapter { client.push(targetClient.request(message)); } - /** - * @param clientId 终端标识 - * - * @return 执行结果 - */ + @Override public Message execute(String clientId) { return this.request(clientId, this.build()); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java index 0aa694e..4ef1704 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/ControlServerRecordProtocol.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.UUID; import org.springframework.context.ApplicationListener; +import org.springframework.scheduling.annotation.Async; import com.acgist.taoyao.boot.annotation.Description; import com.acgist.taoyao.boot.annotation.Protocol; @@ -48,7 +49,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter; }, flow = "终端=>信令服务->终端" ) -public class ControlServerRecordProtocol extends ProtocolControlAdapter implements ApplicationListener { +public class ControlServerRecordProtocol extends ProtocolControlAdapter implements ApplicationListener, IControlServerRecordProtocol { public static final String SIGNAL = "control::server::record"; @@ -59,14 +60,11 @@ public class ControlServerRecordProtocol extends ProtocolControlAdapter implemen this.ffmpegProperties = ffmpegProperties; } -// @Async + @Async @Override public void onApplicationEvent(RecorderCloseEvent event) { - // 没有提供接口不能使用注解异步执行 - this.taskExecutor.execute(() -> { - final Recorder recorder = event.getRecorder(); - this.stop(recorder.getRoom(), recorder.getClientWrapper()); - }); + final Recorder recorder = event.getRecorder(); + this.stop(recorder.getRoom(), recorder.getClientWrapper()); } @Override @@ -85,13 +83,7 @@ public class ControlServerRecordProtocol extends ProtocolControlAdapter implemen client.push(message); } - /** - * @param roomId 房间ID - * @param clientId 终端ID - * @param enabled 状态 - * - * @return 执行结果 - */ + @Override public Message execute(String roomId, String clientId, Boolean enabled) { String filepath; final Room room = this.roomManager.room(roomId); diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlBellProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlBellProtocol.java new file mode 100644 index 0000000..c489dfa --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlBellProtocol.java @@ -0,0 +1,20 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.model.Message; + +/** + * 响铃信令接口 + * + * @author acgist + */ +public interface IControlBellProtocol { + + /** + * @param clientId 终端ID + * @param enabled 状态 + * + * @return 执行结果 + */ + Message execute(String clientId, Boolean enabled); + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlClientRecordProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlClientRecordProtocol.java new file mode 100644 index 0000000..4bdbf29 --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlClientRecordProtocol.java @@ -0,0 +1,20 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.model.Message; + +/** + * 终端录像信令接口 + * + * @author acgist + */ +public interface IControlClientRecordProtocol { + + /** + * @param clientId 终端ID + * @param enabled 状态 + * + * @return 执行结果 + */ + Message execute(String clientId, Boolean enabled); + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigAudioProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigAudioProtocol.java new file mode 100644 index 0000000..03339ca --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigAudioProtocol.java @@ -0,0 +1,21 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.config.MediaAudioProperties; +import com.acgist.taoyao.boot.model.Message; + +/** + * 配置音频信令 + * + * @author acgist + */ +public interface IControlConfigAudioProtocol { + + /** + * @param clientId 终端ID + * @param mediaAudioProperties 音频配置 + * + * @return 执行结果 + */ + Message execute(String clientId, MediaAudioProperties mediaAudioProperties); + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigVideoProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigVideoProtocol.java new file mode 100644 index 0000000..6303841 --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlConfigVideoProtocol.java @@ -0,0 +1,21 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.config.MediaVideoProperties; +import com.acgist.taoyao.boot.model.Message; + +/** + * 配置视频信令接口 + * + * @author acgist + */ +public interface IControlConfigVideoProtocol { + + /** + * @param clientId 终端ID + * @param mediaVideoProperties 视频配置 + * + * @return 执行结果 + */ + Message execute(String clientId, MediaVideoProperties mediaVideoProperties); + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlPhotographProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlPhotographProtocol.java new file mode 100644 index 0000000..2f51fb1 --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlPhotographProtocol.java @@ -0,0 +1,19 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.model.Message; + +/** + * 拍照信令接口 + * + * @author acgist + */ +public interface IControlPhotographProtocol { + + /** + * @param clientId 终端标识 + * + * @return 执行结果 + */ + Message execute(String clientId); + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlServerRecordProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlServerRecordProtocol.java new file mode 100644 index 0000000..58faffd --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/control/IControlServerRecordProtocol.java @@ -0,0 +1,21 @@ +package com.acgist.taoyao.signal.protocol.control; + +import com.acgist.taoyao.boot.model.Message; + +/** + * 服务端录像信令接口 + * + * @author acgist + */ +public interface IControlServerRecordProtocol { + + /** + * @param roomId 房间ID + * @param clientId 终端ID + * @param enabled 状态 + * + * @return 执行结果 + */ + Message execute(String roomId, String clientId, Boolean enabled); + +}