diff --git a/taoyao-server/src/main/resources/application.yml b/taoyao-server/src/main/resources/application.yml index c7078f2..05f0078 100644 --- a/taoyao-server/src/main/resources/application.yml +++ b/taoyao-server/src/main/resources/application.yml @@ -96,7 +96,7 @@ taoyao: security: enabled: true realm: taoyao - permit: /v3/api-docs/,/swagger-ui/,/favicon.ico,/error + permit: /v3/api-docs/,/swagger-ui/,/swagger-ui.html,/favicon.ico,/error username: taoyao password: taoyao scheduled: diff --git a/taoyao-signal/README.md b/taoyao-signal/README.md index 04d2188..549dbe4 100644 --- a/taoyao-signal/README.md +++ b/taoyao-signal/README.md @@ -18,16 +18,29 @@ } ``` +### 符号解释 + +``` +-> 单播:定向传播信令 +-) 广播:广播信令(排除自己) ++) 全员广播:广播信令(包含自己) +``` + ## 平台信令(1000~1999) ### 关闭服务信令(1000) -终端->服务端:关闭信令服务 +#### 消息主体 ``` {} ``` +#### 消息流程:终端->服务端+)终端 + +* 全员广播关闭服务信令 +* 关闭信令服务 + ### 执行命令信令(1001) 终端->服务端:执行系统命令 @@ -61,7 +74,7 @@ ### 终端注册信令(2000) -终端->服务端:注册成功后服务端响应,同时下发配置信息,广播终端上线事件。 +终端->服务端-)终端:注册成功后服务端响应,同时下发配置信息,广播终端上线事件。 ``` { @@ -259,4 +272,12 @@ MCU/SFU模式有效 ### Offer -### Answer \ No newline at end of file +### Answer + +## 测试 + +``` +let socket = new WebSocket("wss://localhost:8888/websocket.signal"); +socket.send('{"header":{"pid":2000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{"username":"taoyao","password":"taoyao"}}'); +socket.send('{"header":{"pid":1000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{}}'); +``` \ No newline at end of file diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java index 618b0d1..6640bd8 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/ProtocolAdapter.java @@ -9,6 +9,7 @@ import com.acgist.taoyao.boot.model.Header; import com.acgist.taoyao.boot.model.Message; import com.acgist.taoyao.boot.model.MessageCode; import com.acgist.taoyao.boot.service.IdService; +import com.acgist.taoyao.signal.client.ClientSessionManager; import com.acgist.taoyao.signal.event.ApplicationEventAdapter; /** @@ -24,6 +25,8 @@ public abstract class ProtocolAdapter implements Protocol { protected ApplicationContext context; @Autowired protected TaoyaoProperties taoyaoProperties; + @Autowired + protected ClientSessionManager clientSessionManager; /** * 信令标识 diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java index 109dbf8..0814aec 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/platform/ShutdownProtocol.java @@ -26,8 +26,11 @@ public class ShutdownProtocol extends ProtocolAdapter { @Override public void execute(String sn, Message message, ClientSession session) { + // 全员广播 + this.clientSessionManager.broadcast(message); + // 关闭信令服务 if(this.context instanceof ConfigurableApplicationContext context) { - log.info("关闭服务:{}", sn); + log.info("关闭信令服务:{}", sn); if(context.isActive()) { context.close(); }