[*] 日常优化

This commit is contained in:
acgist
2023-08-08 08:09:18 +08:00
parent f356e72476
commit f3705db94e
12 changed files with 148 additions and 90 deletions

View File

@@ -33,7 +33,7 @@ import lombok.extern.slf4j.Slf4j;
"consumerId": "消费者ID"
}
""",
flow = "终端=>信令服务->媒体服务"
flow = "终端->信令服务->媒体服务->信令服务->终端"
)
public class MediaConsumerPauseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaConsumerPauseEvent> {

View File

@@ -33,7 +33,7 @@ import lombok.extern.slf4j.Slf4j;
"consumerId": "消费者ID"
}
""",
flow = "终端=>信令服务->媒体服务"
flow = "终端->信令服务->媒体服务->信令服务->终端"
)
public class MediaConsumerResumeProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaConsumerResumeEvent> {

View File

@@ -28,7 +28,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
}
}
""",
flow = "媒体服务->信令服务->终端"
flow = "媒体服务->信令服务+)终端"
)
public class MediaConsumerScoreProtocol extends ProtocolRoomAdapter {

View File

@@ -20,19 +20,19 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
body = {
"""
{
"roomId": "房间标识",
"roomId" : "房间标识",
"transportId": "通道标识"
}
""",
"""
{
"roomId": "房间标识",
"transportId": "通道标识",
"roomId" : "房间标识",
"transportId" : "通道标识",
"iceParameters": "iceParameters"
}
"""
},
flow = "终端=>信令服务->媒体服务->信令服务->终端"
flow = "终端=>信令服务->媒体服务"
)
public class MediaIceRestartProtocol extends ProtocolRoomAdapter {

View File

@@ -28,14 +28,14 @@ import lombok.extern.slf4j.Slf4j;
body = {
"""
{
"kind": "媒体类型",
"roomId": "房间标识",
"transportId": "通道标识",
"kind" : "媒体类型",
"roomId" : "房间标识",
"transportId" : "通道标识",
"rtpParameters": "rtpParameters"
}
"""
},
flow = "终端->信令服务->媒体服务->信令服务->终端"
flow = "终端=>信令服务->媒体服务"
)
public class MediaProduceProtocol extends ProtocolRoomAdapter {

View File

@@ -27,13 +27,14 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
@Protocol
@Description(
memo = "关闭通过回调实现所以不能同步响应",
body = """
{
"roomId": "房间ID"
"roomId" : "房间ID"
"consumerId": "生产者ID"
}
""",
flow = "终端->信令服务->媒体服务->信令服务+)终端"
flow = "终端->信令服务->媒体服务->信令服务->终端"
)
public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements ApplicationListener<MediaProducerCloseEvent> {
@@ -49,7 +50,7 @@ public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements A
final Room room = event.getRoom();
final Client mediaClient = event.getMediaClient();
final Map<String, Object> body = Map.of(
Constant.ROOM_ID, room.getRoomId(),
Constant.ROOM_ID, room.getRoomId(),
Constant.PRODUCER_ID, event.getProducerId()
);
mediaClient.push(this.build(body));
@@ -66,9 +67,8 @@ public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements A
if(clientType.mediaClient()) {
producer.close();
} else if(clientType.mediaServer()) {
// TODO路由到真实消费者
producer.remove();
room.broadcast(message);
producer.getProducerClient().push(message);
} else {
this.logNoAdapter(clientType);
}

View File

@@ -16,17 +16,20 @@ import com.acgist.taoyao.signal.party.media.Producer;
import com.acgist.taoyao.signal.party.room.Room;
import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
import lombok.extern.slf4j.Slf4j;
/**
* 暂停生产者信令
*
* @author acgist
*/
@Slf4j
@Protocol
@Description(
body = """
{
"roomId": "房间ID"
"producerId": "消费者ID"
"roomId" : "房间ID"
"producerId": "生产者ID"
}
""",
flow = "终端->信令服务->媒体服务->信令服务->终端"
@@ -44,7 +47,7 @@ public class MediaProducerPauseProtocol extends ProtocolRoomAdapter implements A
final Room room = event.getRoom();
final Client mediaClient = event.getMediaClient();
final Map<String, Object> body = Map.of(
Constant.ROOM_ID, room.getRoomId(),
Constant.ROOM_ID, room.getRoomId(),
Constant.PRODUCER_ID, event.getProducerId()
);
mediaClient.push(this.build(body));
@@ -52,13 +55,16 @@ public class MediaProducerPauseProtocol extends ProtocolRoomAdapter implements A
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
final String producerId = MapUtils.get(body, Constant.PRODUCER_ID);
final Producer producer = room.producer(producerId);
if(producer == null) {
log.debug("生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
final String producerId = MapUtils.get(body, Constant.PRODUCER_ID);
final Producer producer = room.producer(producerId);
producer.pause();
} else if(clientType.mediaServer()) {
// TODO路由到真实消费者
room.broadcast(message);
producer.getProducerClient().push(message);
} else {
this.logNoAdapter(clientType);
}

View File

@@ -16,17 +16,20 @@ import com.acgist.taoyao.signal.party.media.Producer;
import com.acgist.taoyao.signal.party.room.Room;
import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
import lombok.extern.slf4j.Slf4j;
/**
* 恢复生产者信令
*
* @author acgist
*/
@Slf4j
@Protocol
@Description(
body = """
{
"roomId": "房间ID"
"producerId": "消费者ID"
"roomId" : "房间ID"
"producerId": "生产者ID"
}
""",
flow = "终端->信令服务->媒体服务->信令服务->终端"
@@ -44,7 +47,7 @@ public class MediaProducerResumeProtocol extends ProtocolRoomAdapter implements
final Room room = event.getRoom();
final Client mediaClient = event.getMediaClient();
final Map<String, Object> body = Map.of(
Constant.ROOM_ID, room.getRoomId(),
Constant.ROOM_ID, room.getRoomId(),
Constant.PRODUCER_ID, event.getProducerId()
);
mediaClient.push(this.build(body));
@@ -52,13 +55,16 @@ public class MediaProducerResumeProtocol extends ProtocolRoomAdapter implements
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
final String producerId = MapUtils.get(body, Constant.PRODUCER_ID);
final Producer producer = room.producer(producerId);
if(producer == null) {
log.debug("生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
final String producerId = MapUtils.get(body, Constant.PRODUCER_ID);
final Producer producer = room.producer(producerId);
producer.resume();
} else if(clientType.mediaServer()) {
// TODO路由到真实消费者
room.broadcast(message);
producer.getProducerClient().push(message);
} else {
this.logNoAdapter(clientType);
}

View File

@@ -17,7 +17,16 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
*/
@Protocol
@Description(
flow = "媒体服务->信令服务->终端"
body = """
{
"roomId" : "房间ID"
"consumerId": "消费者ID"
"score" : {
...生产者评分
}
}
""",
flow = "媒体服务->信令服务+)终端"
)
public class MediaProducerScoreProtocol extends ProtocolRoomAdapter {

View File

@@ -19,11 +19,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
@Description(
body = """
{
"roomId": "房间ID",
"roomId" : "房间ID",
"producerId": "生产者ID"
}
""",
flow = "终端=>信令服务->媒体服务->信令服务->终端"
flow = "终端=>信令服务->媒体服务"
)
public class MediaProducerStatusProtocol extends ProtocolRoomAdapter {