[*] 日常优化

This commit is contained in:
acgist
2023-08-26 10:39:00 +08:00
parent 7e4230c214
commit 032021a72f
41 changed files with 103 additions and 86 deletions

View File

@@ -30,6 +30,10 @@ public enum ClientType {
* 手机APP、平板APP
*/
MOBILE("移动端"),
/**
* 应用服务
*/
SERVER("应用服务"),
/**
* 其他智能终端
*/
@@ -47,7 +51,7 @@ public enum ClientType {
/**
* @return 是否是媒体终端
*/
public boolean mediaClient() {
public boolean isClient() {
return
this == WEB ||
this == CAMERA ||
@@ -57,9 +61,16 @@ public enum ClientType {
/**
* @return 是否是媒体服务
*/
public boolean mediaServer() {
public boolean isMedia() {
return this == MEDIA;
}
/**
* @return 是否是应用服务
*/
public boolean isServer() {
return this == SERVER;
}
/**
* @param value 类型
@@ -81,13 +92,13 @@ public enum ClientType {
*/
public static final ClientType[] MEDIA_CLIENT_TYPE
=
Stream.of(ClientType.values()).filter(ClientType::mediaClient).toArray(ClientType[]::new);
Stream.of(ClientType.values()).filter(ClientType::isClient).toArray(ClientType[]::new);
/**
* 媒体服务类型列表
*/
public static final ClientType[] MEDIA_SERVER_TYPE
=
Stream.of(ClientType.values()).filter(ClientType::mediaServer).toArray(ClientType[]::new);
Stream.of(ClientType.values()).filter(ClientType::isMedia).toArray(ClientType[]::new);
}

View File

@@ -74,7 +74,7 @@ public class ClientConfigProtocol extends ProtocolClientAdapter implements Appli
// 日期时间
config.put(Constant.DATETIME, DateUtils.format(LocalDateTime.now(), DateTimeStyle.YYYYMMDDHH24MMSS));
// 媒体终端:媒体配置
if(clientType.mediaClient()) {
if(clientType.isClient()) {
config.put(Constant.MEDIA, this.mediaProperties);
config.put(Constant.WEBRTC, this.webrtcProperties);
} else {

View File

@@ -98,7 +98,7 @@ public class ClientRegisterProtocol extends ProtocolClientAdapter {
// 终端上线事件
this.publishEvent(new ClientOnlineEvent(client));
// 媒体服务注册:创建房间事件
if(clientType.mediaServer()) {
if(clientType.isMedia()) {
this.publishEvent(new MediaServerRegisterEvent(client));
}
}

View File

@@ -41,7 +41,7 @@ public class MediaAudioVolumeProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaServer()) {
if(clientType.isMedia()) {
room.broadcast(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -91,10 +91,10 @@ public class MediaConsumeProtocol extends ProtocolRoomAdapter implements Applica
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(clientType.mediaClient()) {
if(clientType.isClient()) {
// 主动请求消费 || 消费通道准备就绪
this.consume(room, room.clientWrapper(client), producer, message);
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
// 媒体通道准备就绪
final String kind = MapUtils.get(body, Constant.KIND);
final String streamId = MapUtils.get(body, Constant.STREAM_ID);

View File

@@ -68,9 +68,9 @@ public class MediaConsumerCloseProtocol extends ProtocolRoomAdapter implements A
log.debug("消费者无效:{} - {}", consumerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
consumer.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
consumer.remove();
consumer.getConsumerClient().push(message);
} else {

View File

@@ -63,9 +63,9 @@ public class MediaConsumerPauseProtocol extends ProtocolRoomAdapter implements A
log.debug("消费者无效:{} - {}", consumerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
consumer.pause();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
consumer.getConsumerClient().push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -37,7 +37,7 @@ public class MediaConsumerRequestKeyFrameProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
body.put(Constant.CLIENT_ID, clientId);
mediaClient.push(message);
} else {

View File

@@ -63,9 +63,9 @@ public class MediaConsumerResumeProtocol extends ProtocolRoomAdapter implements
log.debug("消费者无效:{} - {}", consumerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
consumer.resume();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
consumer.getConsumerClient().push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -40,7 +40,7 @@ public class MediaConsumerScoreProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaServer()) {
if(clientType.isMedia()) {
room.broadcast(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -44,7 +44,7 @@ public class MediaConsumerSetPreferredLayersProtocol extends ProtocolRoomAdapter
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
mediaClient.push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -35,7 +35,7 @@ public class MediaConsumerSetPriorityProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
mediaClient.push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -35,7 +35,7 @@ public class MediaConsumerStatusProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -57,7 +57,7 @@ public class MediaDataConsumeProtocol extends ProtocolRoomAdapter {
if(dataProducer == null) {
throw MessageCodeException.of("没有提供数据生产:" + producerId);
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
final ClientWrapper dataConsumerClientWrapper = room.clientWrapper(client);
final String dataConsumerClientId = dataConsumerClientWrapper.getClientId();
final ClientWrapper dataProducerClientWrapper = dataProducer.getProducerClient();
@@ -73,7 +73,7 @@ public class MediaDataConsumeProtocol extends ProtocolRoomAdapter {
body.put(Constant.RTP_CAPABILITIES, dataConsumerClientWrapper.getRtpCapabilities());
body.put(Constant.SCTP_CAPABILITIES, dataConsumerClientWrapper.getSctpCapabilities());
mediaClient.push(message);
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
final String streamId = MapUtils.get(body, Constant.STREAM_ID);
final String consumerId = MapUtils.get(body, Constant.CONSUMER_ID);
final String dataConsumerClientId = MapUtils.get(body, Constant.CLIENT_ID);

View File

@@ -68,9 +68,9 @@ public class MediaDataConsumerCloseProtocol extends ProtocolRoomAdapter implemen
log.debug("数据消费者无效:{} - {}", consumerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
dataConsumer.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
dataConsumer.remove();
dataConsumer.getConsumerClient().push(message);
} else {

View File

@@ -35,7 +35,7 @@ public class MediaDataConsumerStatusProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -44,7 +44,7 @@ public class MediaDataProduceProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
final String streamId = Constant.STREAM_ID_PRODUCER.apply(Constant.DATA, clientId);
body.put(Constant.CLIENT_ID, clientId);
body.put(Constant.STREAM_ID, streamId);

View File

@@ -64,9 +64,9 @@ public class MediaDataProducerCloseProtocol extends ProtocolRoomAdapter implemen
log.debug("数据生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
dataProducer.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
dataProducer.remove();
dataProducer.getProducerClient().push(message);
} else {

View File

@@ -35,7 +35,7 @@ public class MediaDataProducerStatusProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -44,7 +44,7 @@ public class MediaIceRestartProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -47,7 +47,7 @@ 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.mediaClient()) {
if(clientType.isClient()) {
final String kind = MapUtils.get(body, Constant.KIND);
final String streamId = Constant.STREAM_ID_PRODUCER.apply(kind, clientId);
body.put(Constant.CLIENT_ID, clientId);

View File

@@ -64,9 +64,9 @@ public class MediaProducerCloseProtocol extends ProtocolRoomAdapter implements A
log.debug("生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
producer.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
producer.remove();
producer.getProducerClient().push(message);
} else {

View File

@@ -61,9 +61,9 @@ public class MediaProducerPauseProtocol extends ProtocolRoomAdapter implements A
log.debug("生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
producer.pause();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
producer.getProducerClient().push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -61,9 +61,9 @@ public class MediaProducerResumeProtocol extends ProtocolRoomAdapter implements
log.debug("生产者无效:{} - {}", producerId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
producer.resume();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
producer.getProducerClient().push(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -38,7 +38,7 @@ public class MediaProducerScoreProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaServer()) {
if(clientType.isMedia()) {
room.broadcast(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -35,7 +35,7 @@ public class MediaProducerStatusProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -48,7 +48,7 @@ public class MediaRouterRtpCapabilitiesProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(room.requestMedia(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -64,9 +64,9 @@ public class MediaTransportCloseProtocol extends ProtocolRoomAdapter implements
log.debug("通道无效:{} - {}", transportId, clientType);
return;
}
if(clientType.mediaClient()) {
if(clientType.isClient()) {
transport.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
transport.remove();
transport.getClient().push(message);
} else {

View File

@@ -35,7 +35,7 @@ public class MediaTransportStatusProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
client.push(mediaClient.request(message));
} else {
this.logNoAdapter(clientType);

View File

@@ -43,7 +43,7 @@ public class MediaTransportWebRtcConnectProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
final Message response = room.requestMedia(message);
final Map<String, Object> responseBody = response.body();
client.push(response);

View File

@@ -62,7 +62,7 @@ public class MediaTransportWebRtcCreateProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
body.put(Constant.CLIENT_ID, clientId);
final Message response = room.requestMedia(message);
final Map<String, Object> responseBody = response.body();

View File

@@ -37,7 +37,7 @@ public class MediaVideoOrientationChangeProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaServer()) {
if(clientType.isMedia()) {
room.broadcast(message);
} else {
this.logNoAdapter(clientType);

View File

@@ -46,9 +46,9 @@ public class RoomCloseProtocol extends ProtocolRoomAdapter implements Applicatio
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
room.close();
} else if(clientType.mediaServer()) {
} else if(clientType.isMedia()) {
room.remove();
room.broadcast(message);
} else {

View File

@@ -61,7 +61,7 @@ public class RoomCreateProtocol extends ProtocolClientAdapter implements Applica
@Override
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
// WEB同步创建房间
final Room room = this.roomManager.create(
MapUtils.get(body, Constant.NAME),

View File

@@ -76,7 +76,7 @@ public class RoomEnterProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
this.enter(clientId, room, client, message, body);
} else {
this.logNoAdapter(clientType);

View File

@@ -37,7 +37,7 @@ public class RoomExpelProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
final String expelClientId = MapUtils.get(body, Constant.CLIENT_ID);
room.unicast(expelClientId, message);
// 如果需要强制提出

View File

@@ -38,7 +38,7 @@ public class RoomInviteProtocol extends ProtocolRoomAdapter {
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
final String inviteClientId = MapUtils.get(body, Constant.CLIENT_ID);
body.put(Constant.PASSWORD, room.getPassword());
this.clientManager.unicast(inviteClientId, message);

View File

@@ -24,6 +24,10 @@ import com.acgist.taoyao.signal.protocol.ProtocolRoomAdapter;
@Description(
body = """
{
"roomId": "房间ID"
}
{
"roomId" : "房间ID"
"clientId": "离开终端ID"
}
""",
@@ -43,7 +47,7 @@ public class RoomLeaveProtocol extends ProtocolRoomAdapter implements Applicatio
@Async
@Override
public void onApplicationEvent(RoomLeaveEvent event) {
final Room room = event.getRoom();
final Room room = event.getRoom();
final Client client = event.getClient();
final Map<String, String> body = Map.of(
Constant.ROOM_ID, room.getRoomId(),
@@ -54,7 +58,7 @@ public class RoomLeaveProtocol extends ProtocolRoomAdapter implements Applicatio
@Override
public void execute(String clientId, ClientType clientType, Room room, Client client, Client mediaClient, Message message, Map<String, Object> body) {
if(clientType.mediaClient()) {
if(clientType.isClient()) {
room.leave(client);
} else {
this.logNoAdapter(clientType);

View File

@@ -17,6 +17,9 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
@Protocol
@Description(
body = """
{
"roomId": "房间ID"
}
[
{
"name" : "房间名称",