diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index ddcf554..6099975 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -2524,6 +2524,20 @@ class Taoyao extends RemoteClient { return response.body; } + /** + * 房间状态信令 + * + * @param {*} roomId 房间ID + * + * @returns 房间状态 + */ + async roomStatus(roomId) { + const response = await this.request(protocol.buildMessage("room::status", { + roomId: roomId || this.roomId + })); + return response.body; + } + /** * 生产媒体 * @@ -3072,13 +3086,11 @@ class Taoyao extends RemoteClient { await me.buildPeerConnection(session, sessionId); session.peerConnection.createOffer().then(async (description) => { await session.peerConnection.setLocalDescription(description); - me.push( - protocol.buildMessage("session::exchange", { - sdp : description.sdp, - type : description.type, - sessionId: sessionId - }) - ); + me.push(protocol.buildMessage("session::exchange", { + sdp : description.sdp, + type : description.type, + sessionId: sessionId + })); }); } @@ -3126,13 +3138,11 @@ class Taoyao extends RemoteClient { await session.peerConnection.setRemoteDescription(new RTCSessionDescription(message.body)); session.peerConnection.createAnswer().then(async description => { await session.peerConnection.setLocalDescription(description); - me.push( - protocol.buildMessage("session::exchange", { - sdp : description.sdp, - type : description.type, - sessionId: sessionId - }) - ); + me.push(protocol.buildMessage("session::exchange", { + sdp : description.sdp, + type : description.type, + sessionId: sessionId + })); }); } else if (type === "answer") { await session.peerConnection.setRemoteDescription(new RTCSessionDescription(message.body)); @@ -3214,6 +3224,33 @@ class Taoyao extends RemoteClient { console.debug("恢复会话(无效)", type, sessionId); } } + + /** + * 系统信息信令 + * + * @returns 系统信息 + */ + async systemInfo() { + return await this.request(protocol.buildMessage("system::info", {})); + } + + /** + * 重启系统信令 + * + * @returns 重启系统 + */ + async systemReboot() { + return await this.request(protocol.buildMessage("system::reboot", {})); + } + + /** + * 关闭系统信令 + * + * @returns 关闭系统 + */ + async systemShutdown() { + return await this.request(protocol.buildMessage("system::shutdown", {})); + } /** * @param {*} session 会话 @@ -3250,13 +3287,11 @@ class Taoyao extends RemoteClient { }; peerConnection.onicecandidate = event => { console.debug("会话媒体协商", event); - me.push( - protocol.buildMessage("session::exchange", { - type : "candidate", - sessionId : sessionId, - candidate : event.candidate - }) - ); + me.push(protocol.buildMessage("session::exchange", { + type : "candidate", + sessionId : sessionId, + candidate : event.candidate + })); }; peerConnection.onnegotiationneeded = event => { console.debug("会话媒体重新协商", event); diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaRouterRtpCapabilitiesProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaRouterRtpCapabilitiesProtocol.java index 84a9114..26f4607 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaRouterRtpCapabilitiesProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaRouterRtpCapabilitiesProtocol.java @@ -35,24 +35,24 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; ) public class MediaRouterRtpCapabilitiesProtocol extends ProtocolRoomAdapter { - public static final String SIGNAL = "media::router::rtp::capabilities"; - - public MediaRouterRtpCapabilitiesProtocol() { - super("路由RTP协商信令", SIGNAL); - } - - @Override + public static final String SIGNAL = "media::router::rtp::capabilities"; + + public MediaRouterRtpCapabilitiesProtocol() { + super("路由RTP协商信令", SIGNAL); + } + + @Override protected boolean authenticate(Room room, Client client) { - return true; + return true; } - @Override - public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map body) { - if(clientType.mediaClient()) { - client.push(room.requestMedia(message)); - } else { - this.logNoAdapter(clientType); - } - } + @Override + public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map body) { + if(clientType.mediaClient()) { + client.push(room.requestMedia(message)); + } else { + this.logNoAdapter(clientType); + } + } } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java index 9e7dd14..c14de97 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java @@ -28,11 +28,13 @@ import lombok.extern.slf4j.Slf4j; "audio" : 是否需要声音(true|false), "video" : 是否需要视频(true|false) } - """, - flow = { - "终端->信令服务->终端", - "终端=>信令服务->终端" + { + "name" : "终端名称", + "clientId" : "终端ID", + "sessionId": "会话ID" } + """, + flow = "终端=>信令服务->终端" ) public class SessionCallProtocol extends ProtocolSessionAdapter { diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCloseProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCloseProtocol.java index e17eae6..f1b5c26 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCloseProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCloseProtocol.java @@ -23,9 +23,10 @@ import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter; @Description( body = """ { + "sessionId": "会话ID" } """, - flow = "终端->信令服务+)终端" + flow = "终端->信令服务->终端" ) public class SessionCloseProtocol extends ProtocolSessionAdapter implements ApplicationListener { diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionExchangeProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionExchangeProtocol.java index 15b70a3..8bbb5fe 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionExchangeProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionExchangeProtocol.java @@ -25,22 +25,22 @@ import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter; """, body = """ { - "sdp": "sdp" - "type": "offer", + "sdp" : "sdp" + "type" : "offer", "sessionId": "会话ID" } { - "sdp": "sdp" - "type": "answer", + "sdp" : "sdp" + "type" : "answer", "sessionId": "会话ID" } { - "type": "candidate", + "type" : "candidate", "sessionId": "会话ID", "candidate": { - "sdpMid": "sdpMid", - "candidate": "candidate信息", - "sdpMLineIndex":sdpMLineIndex + "sdpMid" : "sdpMid", + "candidate" : "candidate信息", + "sdpMLineIndex": sdpMLineIndex } } """, diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemInfoProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemInfoProtocol.java index d8b9e8f..0a961a8 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemInfoProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemInfoProtocol.java @@ -29,23 +29,24 @@ import lombok.Setter; { "diskspace": [ { - "path": "存储路径", - "free": 存储空闲, + "path" : "存储路径", + "free" : 存储空闲, "total": 存储总量 }, ... ], - "maxMemory": 最大能用内存, - "freeMemory": 空闲内存, - "totalMemory": 已用内存, - "osArch": "系统架构", - "osName": "系统名称", - "osVersion": "系统版本", - "javaVmName": "虚拟机名称", - "javaVersion": "虚拟机版本", + "maxMemory" : 最大能用内存, + "freeMemory" : 空闲内存, + "totalMemory" : 已用内存, + "osArch" : "系统架构", + "osName" : "系统名称", + "osVersion" : "系统版本", + "javaVmName" : "虚拟机名称", + "javaVersion" : "虚拟机版本", "cpuProcessors": CPU核心数量 } - """ + """, + flow = "终端=>信令服务" ) public class SystemInfoProtocol extends ProtocolClientAdapter { @@ -82,7 +83,8 @@ public class SystemInfoProtocol extends ProtocolClientAdapter { info.put("javaVersion", System.getProperty("java.version")); info.put("cpuProcessors", runtime.availableProcessors()); // 响应 - client.push(this.build(info)); + message.setBody(info); + client.push(message); }; @Getter @@ -111,10 +113,10 @@ public class SystemInfoProtocol extends ProtocolClientAdapter { private final String totalGracefully; public Diskspace(String path, Long free, Long total) { - this.path = path; - this.free = free; + this.path = path; + this.free = free; this.total = total; - this.freeGracefully = FileUtils.formatSize(free); + this.freeGracefully = FileUtils.formatSize(free); this.totalGracefully = FileUtils.formatSize(total); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemRebootProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemRebootProtocol.java index df13712..61ae453 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemRebootProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemRebootProtocol.java @@ -21,42 +21,43 @@ import lombok.extern.slf4j.Slf4j; @Description( flow = { "信令服务+)终端", - "终端->信令服务+)终端" + "终端->信令服务+)终端", + "终端=>信令服务+)终端" } ) public class SystemRebootProtocol extends ProtocolClientAdapter { - public static final String SIGNAL = "system::reboot"; - - private final ScriptProperties scriptProperties; - - public SystemRebootProtocol(ScriptProperties scriptProperties) { - super("重启系统信令", SIGNAL); - this.scriptProperties = scriptProperties; - } + public static final String SIGNAL = "system::reboot"; + + private final ScriptProperties scriptProperties; + + public SystemRebootProtocol(ScriptProperties scriptProperties) { + super("重启系统信令", SIGNAL); + this.scriptProperties = scriptProperties; + } - @Override - public void execute(String clientId, ClientType clientType, Client client, Message message, Map body) { - log.info("重启系统:{}", clientId); - this.reboot(message); - } - - /** - * 重启系统 - */ - public void execute() { - log.info("重启系统"); - this.reboot(this.build()); - } - - /** - * 重启系统 - * - * @param message 消息 - */ - private void reboot(Message message) { - this.clientManager.broadcast(message); - ScriptUtils.execute(this.scriptProperties.getSystemReboot()); - } + @Override + public void execute(String clientId, ClientType clientType, Client client, Message message, Map body) { + log.info("重启系统:{}", clientId); + this.reboot(message); + } + + /** + * 重启系统 + */ + public void execute() { + log.info("重启系统"); + this.reboot(this.build()); + } + + /** + * 重启系统 + * + * @param message 消息 + */ + private void reboot(Message message) { + this.clientManager.broadcast(message); + ScriptUtils.execute(this.scriptProperties.getSystemReboot()); + } } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemShutdownProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemShutdownProtocol.java index b5f6faa..d5a890f 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemShutdownProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/system/SystemShutdownProtocol.java @@ -21,42 +21,43 @@ import lombok.extern.slf4j.Slf4j; @Description( flow = { "信令服务+)终端", - "终端->信令服务+)终端" + "终端->信令服务+)终端", + "终端=>信令服务+)终端" } ) public class SystemShutdownProtocol extends ProtocolClientAdapter { - public static final String SIGNAL = "system::shutdown"; - - private final ScriptProperties scriptProperties; - - public SystemShutdownProtocol(ScriptProperties scriptProperties) { - super("关闭系统信令", SIGNAL); - this.scriptProperties = scriptProperties; - } + public static final String SIGNAL = "system::shutdown"; + + private final ScriptProperties scriptProperties; + + public SystemShutdownProtocol(ScriptProperties scriptProperties) { + super("关闭系统信令", SIGNAL); + this.scriptProperties = scriptProperties; + } - @Override - public void execute(String clientId, ClientType clientType, Client client, Message message, Map body) { - log.info("关闭系统:{}", clientId); - this.shutdown(message); - } - - /** - * 执行命令信令 - */ - public void execute() { - log.info("关闭系统"); - this.shutdown(this.build()); - } - - /** - * 关闭系统 - * - * @param message 消息 - */ - private void shutdown(Message message) { - this.clientManager.broadcast(message); - ScriptUtils.execute(this.scriptProperties.getSystemShutdown()); - } + @Override + public void execute(String clientId, ClientType clientType, Client client, Message message, Map body) { + log.info("关闭系统:{}", clientId); + this.shutdown(message); + } + + /** + * 执行命令信令 + */ + public void execute() { + log.info("关闭系统"); + this.shutdown(this.build()); + } + + /** + * 关闭系统 + * + * @param message 消息 + */ + private void shutdown(Message message) { + this.clientManager.broadcast(message); + ScriptUtils.execute(this.scriptProperties.getSystemShutdown()); + } }