From 4cd1e5b08d5f1a52c1ed75b3af53299133478901 Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Thu, 31 Aug 2023 07:32:52 +0800 Subject: [PATCH] =?UTF-8?q?[*]=20=E6=97=A5=E5=B8=B8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- taoyao-client-media/src/Taoyao.js | 7 ++-- taoyao-client-web/src/components/Taoyao.js | 35 +++++++++++-------- .../room/RoomClientListIdProtocol.java | 7 ++-- .../protocol/room/RoomClientListProtocol.java | 2 +- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index 89f6eb2..82e94d8 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -374,8 +374,11 @@ class Taoyao { on(message) { const me = this; // 解构 - const { header, body } = message; - const { id, signal } = header; + const { code, header, body } = message; + const { id, signal } = header; + if(code !== "0000") { + console.warn("信令错误", message); + } // 请求回调 if (me.callbackMapping.has(id)) { try { diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index 5ee1c13..f0d9393 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -721,8 +721,11 @@ class Taoyao extends RemoteClient { */ async on(message) { const me = this; - const { header, body } = message; - const { id } = header; + const { code, header, body } = message; + const { id, signal } = header; + if(code !== "0000") { + console.warn("信令错误", message); + } // 请求回调 if (me.callbackMapping.has(id)) { try { @@ -2262,19 +2265,6 @@ class Taoyao extends RemoteClient { })); } - /** - * @param {*} clientId 终端ID - * - * @returns 终端所有ID - */ - async roomClientListId(clientId) { - const response = await this.request(protocol.buildMessage("room::client::list::id", { - roomId : this.roomId, - clientId: clientId - })); - return response.body; - } - /** * 媒体回调 * @@ -2818,6 +2808,21 @@ class Taoyao extends RemoteClient { } } + /** + * 房间终端ID集合信令 + * + * @param {*} clientId 终端ID + * + * @returns 房间终端ID集合 + */ + async roomClientListId(clientId) { + const response = await this.request(protocol.buildMessage("room::client::list::id", { + roomId : this.roomId, + clientId: clientId + })); + return response.body; + } + /** * 房间终端列表信令 * diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListIdProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListIdProtocol.java index 3d3dd9c..98d3dae 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListIdProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListIdProtocol.java @@ -34,7 +34,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; ... } """, - flow = "终端=>信令服务->终端" + flow = "终端=>信令服务" ) public class RoomClientListIdProtocol extends ProtocolRoomAdapter { @@ -48,11 +48,13 @@ public class RoomClientListIdProtocol extends ProtocolRoomAdapter { public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map body) { final String queryClientId = MapUtils.get(body, Constant.CLIENT_ID, clientId); final ClientWrapper clientWrapper = room.clientWrapper(queryClientId); - final RoomClientId roomClientId = new RoomClientId(); + final RoomClientId roomClientId = new RoomClientId(); roomClientId.setRoomId(room.getRoomId()); roomClientId.setClientId(queryClientId); + // 数据生产者和消费者 clientWrapper.getDataProducers().keySet().forEach(roomClientId.getDataProducers()::add); clientWrapper.getDataConsumers().keySet().forEach(roomClientId.getDataConsumers()::add); + // 媒体生产者 clientWrapper.getProducers().values().stream() .filter(v -> v.getKind() == Kind.AUDIO) .map(Producer::getProducerId) @@ -61,6 +63,7 @@ public class RoomClientListIdProtocol extends ProtocolRoomAdapter { .filter(v -> v.getKind() == Kind.VIDEO) .map(Producer::getProducerId) .forEach(roomClientId.getVideoProducers()::add); + // 媒体生产者 clientWrapper.getConsumers().values().stream() .filter(v -> v.getKind() == Kind.AUDIO) .map(Consumer::getConsumerId) diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListProtocol.java index 3263cba..1b7d5f4 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/room/RoomClientListProtocol.java @@ -54,7 +54,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter; """ }, flow = { - "终端=>信令服务->终端", + "终端=>信令服务", "终端=[进入房间]>信令服务->终端", } )