[*] 日常优化

This commit is contained in:
acgist
2023-10-08 08:00:43 +08:00
parent 993ed9ed1d
commit 03ab29a13f
3 changed files with 74 additions and 54 deletions

View File

@@ -804,7 +804,7 @@ class Taoyao {
/**
* 消费媒体信令
*
* @param {*} message 消息
* @param {*} message 信令消息
* @param {*} body 消息主体
*/
async mediaConsume(message, body) {
@@ -818,8 +818,7 @@ class Taoyao {
appData,
rtpCapabilities,
} = body;
const me = this;
const room = me.rooms.get(roomId);
const room = this.rooms.get(roomId);
const producer = room?.producers.get(producerId);
const transport = room?.transports.get(transportId);
if (
@@ -828,8 +827,8 @@ class Taoyao {
!transport ||
!rtpCapabilities ||
!room.mediasoupRouter.canConsume({
producerId : producerId,
rtpCapabilities: rtpCapabilities,
producerId,
rtpCapabilities,
})
) {
console.warn("不能消费媒体", body);
@@ -840,28 +839,21 @@ class Taoyao {
for (let i = 0; i < consumerCount; i++) {
promises.push(
(async () => {
let consumer;
try {
consumer = await transport.consume({
// 默认暂停
paused : true,
producerId : producerId,
rtpCapabilities: rtpCapabilities,
});
} catch (error) {
console.error("创建消费者异常", body, error);
return;
}
const consumer = await transport.consume({
paused: true,
producerId,
rtpCapabilities,
});
consumer.clientId = clientId;
consumer.streamId = streamId;
room.consumers.set(consumer.id, consumer);
console.debug("创建消费者", consumer.id, streamId);
consumer.on("transportclose", () => {
console.info("消费者关闭(通道关闭)", consumer.id, streamId);
console.debug("消费者关闭(通道关闭)", consumer.id, streamId);
consumer.close();
});
consumer.on("producerclose", () => {
console.info("消费者关闭(生产者关闭)", consumer.id, streamId);
console.debug("消费者关闭(生产者关闭)", consumer.id, streamId);
consumer.close();
});
consumer.on("producerpause", () => {
@@ -883,7 +875,7 @@ class Taoyao {
// consumer.observer.on("score", fn(score));
consumer.on("score", (score) => {
console.debug("消费者评分", consumer.id, streamId, score);
me.push(protocol.buildMessage("media::consumer::score", {
this.push(protocol.buildMessage("media::consumer::score", {
score,
roomId,
consumerId: consumer.id,
@@ -892,17 +884,17 @@ class Taoyao {
// consumer.observer.on("layerschange", fn(layers));
consumer.on("layerschange", (layers) => {
console.debug("消费者空间层和时间层改变", consumer.id, streamId, layers);
me.push(protocol.buildMessage("media::consumer::layers::change", {
this.push(protocol.buildMessage("media::consumer::layers::change", {
roomId,
consumerId : consumer.id,
spatialLayer : layers ? layers.spatialLayer : null,
temporalLayer: layers ? layers.temporalLayer : null,
spatialLayer : layers?.spatialLayer,
temporalLayer: layers?.temporalLayer,
}));
});
consumer.observer.on("close", () => {
if(room.consumers.delete(consumer.id)) {
console.debug("消费者关闭", consumer.id, streamId);
me.push(protocol.buildMessage("media::consumer::close", {
this.push(protocol.buildMessage("media::consumer::close", {
roomId,
consumerId: consumer.id
}));
@@ -912,14 +904,14 @@ class Taoyao {
});
consumer.observer.on("pause", () => {
console.debug("消费者暂停", consumer.id, streamId);
me.push(protocol.buildMessage("media::consumer::pause", {
this.push(protocol.buildMessage("media::consumer::pause", {
roomId,
consumerId: consumer.id
}));
});
consumer.observer.on("resume", () => {
console.debug("消费者恢复", consumer.id, streamId);
me.push(protocol.buildMessage("media::consumer::resume", {
this.push(protocol.buildMessage("media::consumer::resume", {
roomId,
consumerId: consumer.id
}));
@@ -930,7 +922,7 @@ class Taoyao {
// console.debug("消费者跟踪事件trace", consumer.id, streamId, trace);
// });
// 等待终端准备就绪可以不用等待直接使用push方法
await me.request(protocol.buildMessage("media::consume", {
await this.request(protocol.buildMessage("media::consume", {
roomId,
clientId,
sourceId,