From 993ed9ed1d2c8a2a8f54486a8229837a05548dac Mon Sep 17 00:00:00 2001 From: acgist <289547414@qq.com> Date: Sat, 7 Oct 2023 07:38:45 +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 | 22 ++++--- taoyao-client-web/src/components/Taoyao.js | 65 +++++++++---------- .../media/MediaConsumerCloseProtocol.java | 2 +- 3 files changed, 44 insertions(+), 45 deletions(-) diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index 6b8a321..a55cfac 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -901,7 +901,7 @@ class Taoyao { }); consumer.observer.on("close", () => { if(room.consumers.delete(consumer.id)) { - console.info("消费者关闭", consumer.id, streamId); + console.debug("消费者关闭", consumer.id, streamId); me.push(protocol.buildMessage("media::consumer::close", { roomId, consumerId: consumer.id @@ -958,20 +958,22 @@ class Taoyao { /** * 关闭消费者信令 * - * @param {*} message 消息 + * @param {*} message 信令消息 * @param {*} body 消息主体 */ async mediaConsumerClose(message, body) { - const me = this; - const { roomId, consumerId } = body; - const room = me.rooms.get(roomId); + const { + roomId, + consumerId + } = body; + const room = this.rooms.get(roomId); const consumer = room?.consumers.get(consumerId); - if(consumer) { - console.info("关闭消费者", consumerId); - await consumer.close(); - } else { - console.debug("关闭消费者无效(无效)", consumerId); + if(!consumer) { + console.debug("关闭消费者(消费者无效)", roomId, consumerId); + return; } + console.debug("关闭消费者", consumerId); + await consumer.close(); } /** diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index 7e1cc16..6a7c964 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -1521,40 +1521,6 @@ class Taoyao extends RemoteClient { } } - /** - * 关闭消费者信令 - * - * @param {*} consumerId 消费者ID - */ - mediaConsumerClose(consumerId) { - const me = this; - me.push(protocol.buildMessage("media::consumer::close", { - roomId : me.roomId, - consumerId: consumerId, - })); - } - - /** - * 关闭消费者信令 - * - * @param {*} message 信令消息 - * @param {*} body 消息主体 - */ - defaultMediaConsumerClose(message, body) { - const me = this; - const { - roomId, - consumerId - } = body; - const consumer = me.consumers.get(consumerId); - if (consumer) { - console.debug("关闭消费者", consumerId); - consumer.close(); - } else { - console.debug("关闭消费者无效", consumerId); - } - } - /** * 消费媒体信令 * @@ -1662,6 +1628,37 @@ class Taoyao extends RemoteClient { } } + /** + * 关闭消费者信令 + * + * @param {*} consumerId 消费者ID + */ + mediaConsumerClose(consumerId) { + this.push(protocol.buildMessage("media::consumer::close", { + consumerId, + roomId: this.roomId, + })); + } + + /** + * 关闭消费者信令 + * + * @param {*} message 信令消息 + * @param {*} body 消息主体 + */ + defaultMediaConsumerClose(message, body) { + const { + consumerId + } = body; + const consumer = this.consumers.get(consumerId); + if(!consumer) { + console.debug("关闭消费者(消费者无效)", consumerId); + return; + } + console.debug("关闭消费者", consumerId); + consumer.close(); + } + /** * 暂停消费者信令 * diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerCloseProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerCloseProtocol.java index ab3367e..efb5eec 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerCloseProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaConsumerCloseProtocol.java @@ -54,7 +54,7 @@ public class MediaConsumerCloseProtocol extends ProtocolRoomAdapter implements A final Room room = event.getRoom(); final Client mediaClient = event.getMediaClient(); final Map body = Map.of( - Constant.ROOM_ID, room.getRoomId(), + Constant.ROOM_ID, room.getRoomId(), Constant.CONSUMER_ID, event.getConsumerId() ); mediaClient.push(this.build(body));