[*] 日常优化

This commit is contained in:
acgist
2023-09-20 07:21:04 +08:00
parent 8958e09c4c
commit c76d32cc58
8 changed files with 72 additions and 58 deletions

View File

@@ -1181,15 +1181,13 @@ class Taoyao {
// dataConsumer.on("sctpsendbufferfull", fn()); // dataConsumer.on("sctpsendbufferfull", fn());
dataConsumer.observer.on("close", () => { dataConsumer.observer.on("close", () => {
if(room.dataConsumers.delete(dataConsumer.id)) { if(room.dataConsumers.delete(dataConsumer.id)) {
console.info("数据消费者关闭", dataConsumer.id, streamId); console.debug("数据消费者关闭", dataConsumer.id, streamId);
me.push( me.push(protocol.buildMessage("media::data::consumer::close", {
protocol.buildMessage("media::data::consumer::close", { roomId,
roomId : roomId, consumerId: dataConsumer.id,
consumerId: dataConsumer.id, }));
})
);
} else { } else {
console.debug("数据消费者关闭(无效)", dataConsumer.id, streamId); console.debug("数据消费者关闭(数据消费者无效)", dataConsumer.id, streamId);
} }
}); });
me.push( me.push(
@@ -1211,20 +1209,22 @@ class Taoyao {
/** /**
* 关闭数据消费者信令 * 关闭数据消费者信令
* *
* @param {*} message 消息 * @param {*} message 信令消息
* @param {*} body 消息主体 * @param {*} body 消息主体
*/ */
async mediaDataConsumerClose(message, body) { async mediaDataConsumerClose(message, body) {
const me = this; const {
const { roomId, consumerId } = body; roomId,
const room = me.rooms.get(roomId); consumerId
} = body;
const room = this.rooms.get(roomId);
const dataConsumer = room?.dataConsumers.get(consumerId); const dataConsumer = room?.dataConsumers.get(consumerId);
if(dataConsumer) { if(!dataConsumer) {
console.info("关闭数据消费者", consumerId); console.debug("关闭数据消费者(数据消费者无效)", roomId, consumerId);
await dataConsumer.close(); return;
} else {
console.info("关闭数据消费者(无效)", consumerId);
} }
console.debug("关闭数据消费者", consumerId);
await dataConsumer.close();
} }
/** /**

View File

@@ -1531,7 +1531,6 @@ class Taoyao extends RemoteClient {
if (consumer) { if (consumer) {
console.debug("关闭消费者", consumerId); console.debug("关闭消费者", consumerId);
consumer.close(); consumer.close();
me.consumers.delete(consumerId);
} else { } else {
console.debug("关闭消费者无效", consumerId); console.debug("关闭消费者无效", consumerId);
} }
@@ -1711,37 +1710,6 @@ class Taoyao extends RemoteClient {
})); }));
} }
/**
* 关闭数据消费者信令
*
* @param {*} consumerId 数据消费者ID
*/
mediaDataConsumerClose(consumerId) {
const me = this;
me.push(protocol.buildMessage("media::data::consumer::close", {
roomId : me.roomId,
consumerId: consumerId,
}));
}
/**
* 关闭数据消费者信令
*
* @param {*} message 信令消息
*/
defaultMediaDataConsumerClose(message) {
const me = this;
const { roomId, consumerId } = message.body;
const dataConsumer = me.dataConsumers.get(consumerId);
if (dataConsumer) {
console.debug("关闭数据消费者", consumerId);
dataConsumer.close();
me.dataConsumers.delete(consumerId);
} else {
console.debug("关闭数据消费者无效", consumerId);
}
}
/** /**
* 消费媒体信令 * 消费媒体信令
* *
@@ -1920,6 +1888,36 @@ class Taoyao extends RemoteClient {
} }
} }
/**
* 关闭数据消费者信令
*
* @param {*} consumerId 数据消费者ID
*/
mediaDataConsumerClose(consumerId) {
this.push(protocol.buildMessage("media::data::consumer::close", {
consumerId,
roomId: this.roomId,
}));
}
/**
* 关闭数据消费者信令
*
* @param {*} message 信令消息
*/
defaultMediaDataConsumerClose(message) {
const {
consumerId
} = message.body;
const dataConsumer = this.dataConsumers.get(consumerId);
if (!dataConsumer) {
console.debug("关闭数据消费者(数据消费者无效)", consumerId);
return;
}
console.debug("关闭数据消费者", consumerId);
dataConsumer.close();
}
/** /**
* 查询数据消费者状态信令 * 查询数据消费者状态信令
* *

View File

@@ -27,7 +27,7 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@Protocol @Protocol
@Description( @Description(
memo = "关闭通过回调实现所以不能同步响应", memo = "关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开",
body = """ body = """
{ {
"roomId" : "房间ID" "roomId" : "房间ID"

View File

@@ -22,6 +22,13 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
"roomId" : "房间ID", "roomId" : "房间ID",
"consumerId": "数据消费者ID" "consumerId": "数据消费者ID"
} }
{
"roomId" : "房间ID",
"consumerId": "数据消费者ID",
"status" : [
...状态信息
]
}
""", """,
flow = "终端=>信令服务->媒体服务" flow = "终端=>信令服务->媒体服务"
) )

View File

@@ -27,14 +27,18 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@Protocol @Protocol
@Description( @Description(
memo = "关闭通过回调实现所以不能同步响应", memo = "关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开",
body = """ body = """
{ {
"roomId" : "房间ID" "roomId" : "房间ID"
"consumerId": "数据生产者ID" "consumerId": "数据生产者ID"
} }
""", """,
flow = "终端->信令服务->媒体服务->信令服务->终端" flow = {
"媒体服务->信令服务->终端",
"信令服务->媒体服务->信令服务->终端",
"终端->信令服务->媒体服务->信令服务->终端"
}
) )
public class MediaDataProducerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaDataProducerCloseEvent> { public class MediaDataProducerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaDataProducerCloseEvent> {

View File

@@ -24,7 +24,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
} }
{ {
"roomId" : "房间ID", "roomId" : "房间ID",
"producerId": "生产者ID", "producerId": "数据生产者ID",
"status" : [ "status" : [
...状态信息 ...状态信息
] ]

View File

@@ -27,14 +27,18 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@Protocol @Protocol
@Description( @Description(
memo = "关闭通过回调实现所以不能同步响应", memo = "关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开",
body = """ body = """
{ {
"roomId" : "房间ID" "roomId" : "房间ID"
"consumerId": "生产者ID" "consumerId": "生产者ID"
} }
""", """,
flow = "终端->信令服务->媒体服务->信令服务->终端" flow = {
"媒体服务->信令服务->终端",
"信令服务->媒体服务->信令服务->终端",
"终端->信令服务->媒体服务->信令服务->终端"
}
) )
public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaProducerCloseEvent> { public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaProducerCloseEvent> {

View File

@@ -27,7 +27,7 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@Protocol @Protocol
@Description( @Description(
memo = "关闭通过回调实现所以不能同步响应", memo = "关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开",
body = """ body = """
{ {
"roomId" : "房间ID" "roomId" : "房间ID"
@@ -35,8 +35,9 @@ import lombok.extern.slf4j.Slf4j;
} }
""", """,
flow = { flow = {
"终端->信令服务->媒体服务->信令服务->终端", "媒体服务->信令服务->终端",
"终端-[离开房间]>信令服务->媒体服务->信令服务->终端" "信令服务->媒体服务->信令服务->终端",
"终端->信令服务->媒体服务->信令服务->终端"
} }
) )
public class MediaTransportCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<TransportCloseEvent> { public class MediaTransportCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<TransportCloseEvent> {