[*] 日常优化
This commit is contained in:
@@ -25,4 +25,4 @@ MEDIASOUP_LISTEN_IP=0.0.0.0
|
||||
# Mediasoup监听端口(起始端口)
|
||||
MEDIASOUP_LISTEN_PORT=44444
|
||||
# Mediasoup声明地址(不能配置环回地址)
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.110
|
||||
MEDIASOUP_ANNOUNCED_IP=192.168.1.100
|
||||
@@ -426,6 +426,9 @@ class Taoyao {
|
||||
case "media::data::consumer::close":
|
||||
me.mediaDataConsumerClose(message, body);
|
||||
break;
|
||||
case "media::data::consumer::status":
|
||||
me.mediaDataConsumerStatus(message, body);
|
||||
break;
|
||||
case "media::data::produce":
|
||||
me.mediaDataProduce(message, body);
|
||||
break;
|
||||
@@ -1413,6 +1416,32 @@ class Taoyao {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询数据消费者状态信令
|
||||
*
|
||||
* @param {*} message 信令消息
|
||||
* @param {*} body 消息主体
|
||||
*/
|
||||
async mediaDataConsumerStatus(message, body) {
|
||||
const me = this;
|
||||
const {
|
||||
roomId,
|
||||
consumerId,
|
||||
} = body;
|
||||
const room = me.rooms.get(roomId);
|
||||
const dataConsumer = room?.dataConsumers.get(consumerId);
|
||||
if(dataConsumer) {
|
||||
console.debug("查询消费者状态", consumerId);
|
||||
message.body = {
|
||||
...body,
|
||||
status: await dataConsumer.getStats()
|
||||
};
|
||||
me.push(message);
|
||||
} else {
|
||||
console.debug("查询消费者状态(无效)", consumerId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生产数据信令
|
||||
*
|
||||
|
||||
@@ -1668,7 +1668,7 @@ class Taoyao extends RemoteClient {
|
||||
*/
|
||||
async mediaDataConsumerStatus(consumerId) {
|
||||
const me = this;
|
||||
return await me.request(protocol.buildMessage('media::data::consumer::status', {
|
||||
return await me.request(protocol.buildMessage("media::data::consumer::status", {
|
||||
roomId: me.roomId,
|
||||
consumerId
|
||||
}));
|
||||
@@ -2384,7 +2384,7 @@ class Taoyao extends RemoteClient {
|
||||
async mediaProduce(audioTrack, videoTrack) {
|
||||
const me = this;
|
||||
if(!audioTrack || !videoTrack) {
|
||||
me.checkDevice();
|
||||
await me.checkDevice();
|
||||
}
|
||||
await me.createSendTransport();
|
||||
await me.createRecvTransport();
|
||||
|
||||
@@ -39,7 +39,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"终端=>信令服务->媒体服务->信令服务->媒体服务"
|
||||
"终端->信令服务->媒体服务->信令服务->终端"
|
||||
}
|
||||
)
|
||||
public class MediaDataConsumeProtocol extends ProtocolRoomAdapter {
|
||||
|
||||
@@ -27,6 +27,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Slf4j
|
||||
@Protocol
|
||||
@Description(
|
||||
memo = "关闭通过回调实现所以不能同步响应",
|
||||
body = """
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
@@ -34,8 +35,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"媒体服务->信令服务-)终端",
|
||||
"终端->信令服务->媒体服务->信令服务+)终端"
|
||||
"媒体服务->信令服务->终端",
|
||||
"信令服务->媒体服务->信令服务->终端",
|
||||
"终端->信令服务->媒体服务->信令服务->终端"
|
||||
}
|
||||
)
|
||||
public class MediaDataConsumerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaDataConsumerCloseEvent> {
|
||||
@@ -69,9 +71,8 @@ public class MediaDataConsumerCloseProtocol extends ProtocolRoomAdapter implemen
|
||||
if(clientType.mediaClient()) {
|
||||
dataConsumer.close();
|
||||
} else if(clientType.mediaServer()) {
|
||||
// TODO:路由到真实消费者
|
||||
dataConsumer.remove();
|
||||
room.broadcast(message);
|
||||
dataConsumer.getConsumerClient().push(message);
|
||||
} else {
|
||||
this.logNoAdapter(clientType);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
|
||||
"consumerId": "数据消费者ID"
|
||||
}
|
||||
""",
|
||||
flow = "终端=>信令服务->媒体服务->信令服务->终端"
|
||||
flow = "终端=>信令服务->媒体服务"
|
||||
)
|
||||
public class MediaDataConsumerStatusProtocol extends ProtocolRoomAdapter {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user