diff --git a/taoyao-client-media/src/Taoyao.js b/taoyao-client-media/src/Taoyao.js index f81a570..9c58f55 100644 --- a/taoyao-client-media/src/Taoyao.js +++ b/taoyao-client-media/src/Taoyao.js @@ -1254,11 +1254,10 @@ class Taoyao { /** * 生产数据信令 * - * @param {*} message 消息 + * @param {*} message 信令消息 * @param {*} body 消息主体 */ async mediaDataProduce(message, body) { - const me = this; const { label, roomId, @@ -1269,10 +1268,10 @@ class Taoyao { transportId, sctpStreamParameters, } = body; - const room = me.rooms.get(roomId); + const room = this.rooms.get(roomId); const transport = room?.transports.get(transportId); if(!transport) { - console.warn("生产数据通道无效", roomId, transportId); + console.warn("生产数据通道(通道无效)", roomId, transportId); return; } const dataProducer = await transport.produceData({ @@ -1284,27 +1283,27 @@ class Taoyao { dataProducer.clientId = clientId; dataProducer.streamId = streamId; room.dataProducers.set(dataProducer.id, dataProducer); - console.info("创建数据生产者", dataProducer.id, streamId); + console.debug("创建数据生产者", dataProducer.id, streamId); dataProducer.on("transportclose", () => { - console.info("数据生产者关闭(通道关闭)", dataProducer.id, streamId); + console.debug("数据生产者关闭(通道关闭)", dataProducer.id, streamId); dataProducer.close(); }); dataProducer.observer.on("close", () => { if(room.dataProducers.delete(dataProducer.id)) { - console.info("数据生产者关闭", dataProducer.id, streamId); - me.push(taoyaoProtocol.buildMessage("media::data::producer::close", { - roomId : roomId, + console.debug("数据生产者关闭", dataProducer.id, streamId); + this.push(taoyaoProtocol.buildMessage("media::data::producer::close", { + roomId, producerId: dataProducer.id, })); } else { - console.debug("数据生产者关闭(无效)", dataProducer.id, streamId); + console.debug("数据生产者关闭(数据生产者无效)", dataProducer.id, streamId); } }) message.body = { - roomId : roomId, + roomId, producerId: dataProducer.id }; - me.push(message); + this.push(message); } /** diff --git a/taoyao-client-web/src/components/Taoyao.js b/taoyao-client-web/src/components/Taoyao.js index 22c7c02..e1fc210 100644 --- a/taoyao-client-web/src/components/Taoyao.js +++ b/taoyao-client-web/src/components/Taoyao.js @@ -1935,27 +1935,6 @@ class Taoyao extends RemoteClient { } } - /** - * 通过数据消费者发送数据 - * - * @param {*} data 数据 - * @param {*} consumerId 数据消费者ID - */ - async sendDataConsumer(data, consumerId) { - const me = this; - if(consumerId) { - if(me.dataConsumers.has(consumerId)) { - me.dataConsumers.get(consumerId)?.send(data); - } else { - console.warn("数据消费者无效", consumerId); - } - } else { - me.dataConsumers.forEach(dataConsumer => { - dataConsumer.send(data); - }) - } - } - /** * 生产数据 */ diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaDataProduceProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaDataProduceProtocol.java index 58b1fb0..1014971 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaDataProduceProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/media/MediaDataProduceProtocol.java @@ -30,6 +30,10 @@ import lombok.extern.slf4j.Slf4j; "roomId" : "房间标识", "transportId": "通道标识" } + { + "roomId" : "房间ID", + "producerId": "生产者ID", + } """ }, flow = "终端=>信令服务->媒体服务" @@ -51,18 +55,18 @@ public class MediaDataProduceProtocol extends ProtocolRoomAdapter { final Message response = room.requestMedia(message); final Map responseBody = response.body(); final String producerId = MapUtils.get(responseBody, Constant.PRODUCER_ID); - final ClientWrapper producerClientWrapper = room.clientWrapper(client); - final Map roomDataProducers = room.getDataProducers(); + final ClientWrapper producerClientWrapper = room.clientWrapper(client); + final Map roomDataProducers = room.getDataProducers(); final Map clientDataProducers = producerClientWrapper.getDataProducers(); - final DataProducer dataProducer = new DataProducer(streamId, producerId, room, producerClientWrapper); - final DataProducer oldRoomDataProducer = roomDataProducers.put(producerId, dataProducer); + final DataProducer dataProducer = new DataProducer(streamId, producerId, room, producerClientWrapper); + final DataProducer oldRoomDataProducer = roomDataProducers.put(producerId, dataProducer); final DataProducer oldClientDataProducer = clientDataProducers.put(producerId, dataProducer); if(oldRoomDataProducer != null || oldClientDataProducer != null) { log.warn("数据生产者已经存在:{}", producerId); } final Message responseMessage = response.cloneWithoutBody(); responseMessage.setBody(Map.of( - Constant.STREAM_ID, streamId, + Constant.STREAM_ID, streamId, Constant.PRODUCER_ID, producerId )); client.push(responseMessage);