[*] 日常优化

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

View File

@@ -1531,7 +1531,6 @@ class Taoyao extends RemoteClient {
if (consumer) {
console.debug("关闭消费者", consumerId);
consumer.close();
me.consumers.delete(consumerId);
} else {
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
@Protocol
@Description(
memo = "关闭通过回调实现所以不能同步响应",
memo = "关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开",
body = """
{
"roomId" : "房间ID"

View File

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

View File

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

View File

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

View File

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

View File

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