[*] 日常优化

This commit is contained in:
acgist
2023-09-14 08:02:47 +08:00
parent 9fa84dc700
commit 738607226f
4 changed files with 144 additions and 124 deletions

View File

@@ -29,10 +29,17 @@ import lombok.extern.slf4j.Slf4j;
"""
{
"kind" : "媒体类型",
"roomId" : "房间标识",
"transportId" : "通道标识",
"roomId" : "房间ID",
"transportId" : "通道ID",
"rtpParameters": "rtpParameters"
}
""",
"""
{
"kind" : "媒体类型",
"roomId" : "房间ID",
"producerId": "生产者ID",
}
"""
},
flow = "终端=>信令服务->媒体服务"
@@ -48,26 +55,26 @@ public class MediaProduceProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.isClient()) {
final String kind = MapUtils.get(body, Constant.KIND);
final String kind = MapUtils.get(body, Constant.KIND);
final String streamId = Constant.STREAM_ID_PRODUCER.apply(kind, clientId);
body.put(Constant.CLIENT_ID, clientId);
body.put(Constant.STREAM_ID, streamId);
final Message response = room.requestMedia(message);
final Map<String, Object> responseBody = response.body();
final String producerId = MapUtils.get(responseBody, Constant.PRODUCER_ID);
final ClientWrapper producerClientWrapper = room.clientWrapper(client);
final Map<String, Producer> roomProducers = room.getProducers();
final ClientWrapper producerClientWrapper = room.clientWrapper(client);
final Map<String, Producer> roomProducers = room.getProducers();
final Map<String, Producer> clientProducers = producerClientWrapper.getProducers();
final Producer producer = new Producer(kind, streamId, producerId, room, producerClientWrapper);
final Producer oldRoomProducer = roomProducers.put(producerId, producer);
final Producer producer = new Producer(kind, streamId, producerId, room, producerClientWrapper);
final Producer oldRoomProducer = roomProducers.put(producerId, producer);
final Producer oldClientProducer = clientProducers.put(producerId, producer);
if(oldRoomProducer != null || oldClientProducer != null) {
log.warn("生产者已经存在:{}", producerId);
}
final Message responseMessage = response.cloneWithoutBody();
responseMessage.setBody(Map.of(
Constant.KIND, kind,
Constant.STREAM_ID, streamId,
Constant.KIND, kind,
Constant.STREAM_ID, streamId,
Constant.PRODUCER_ID, producerId
));
client.push(responseMessage);

View File

@@ -19,10 +19,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
@Description(
body = """
{
"roomId" : "房间ID",
"flip" : "是否翻转",
"camera" : "是否摄像头",
"rotation": "旋转角度"
"roomId" : "房间ID",
"producerId": "生产者ID",
"flip" : "是否翻转",
"camera" : "是否摄像头",
"rotation" : "旋转角度"
}
""",
flow = "媒体服务->信令服务->终端"