diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/RoomController.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/RoomController.java index c9f8485..7259927 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/RoomController.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/controller/RoomController.java @@ -35,6 +35,13 @@ public class RoomController { this.roomManager = roomManager; } + @Operation(summary = "房间信息", description = "房间信息") + @GetMapping("/log") + public Message log() { + this.roomManager.log(); + return Message.success(); + } + @Operation(summary = "房间列表", description = "房间列表") @GetMapping("/list") @ApiResponse(content = @Content(schema = @Schema(implementation = RoomStatus.class))) diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/ClientWrapper.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/ClientWrapper.java index 72d5d8d..1656f69 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/ClientWrapper.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/ClientWrapper.java @@ -8,12 +8,14 @@ import com.acgist.taoyao.signal.client.Client; import lombok.Getter; import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * 终端包装器:Peer * * @author acgist */ +@Slf4j @Getter @Setter public class ClientWrapper implements AutoCloseable { @@ -109,7 +111,7 @@ public class ClientWrapper implements AutoCloseable { /** * 数据通道消费者 */ - private final Map dataConsumers; + private final Map dataConsumers; public ClientWrapper(Room room, Client client) { this.room = room; @@ -158,5 +160,27 @@ public class ClientWrapper implements AutoCloseable { this.recvTransport.close(); this.sendTransport.close(); } + + /** + * 记录日志 + */ + public void log() { + log.debug(""" + 当前终端:{} + 消费者数量:{} + 生产者数量:{} + 数据消费者数量:{} + 数据生产者数量:{}""", + this.clientId, + this.consumers.size(), + this.producers.size(), + this.dataConsumers.size(), + this.dataProducers.size() + ); + this.consumers.values().forEach(Consumer::log); + this.producers.values().forEach(Producer::log); + this.dataConsumers.values().forEach(DataConsumer::log); + this.dataProducers.values().forEach(DataProducer::log); + } } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Consumer.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Consumer.java index 5d055c9..3a7c37c 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Consumer.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Consumer.java @@ -69,4 +69,11 @@ public class Consumer implements Closeable { EventPublisher.publishEvent(new MediaConsumerCloseEvent(this.consumerId, this.room)); } + /** + * 记录日志 + */ + public void log() { + log.debug("当前消费者:{} - {} - {}", this.consumerId, this.kind, this.streamId); + } + } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataConsumer.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataConsumer.java index 0e4f531..a52b4f1 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataConsumer.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataConsumer.java @@ -2,12 +2,14 @@ package com.acgist.taoyao.signal.party.media; import lombok.Getter; import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * 数据消费者 * * @author acgist */ +@Slf4j @Getter @Setter public class DataConsumer { @@ -36,4 +38,11 @@ public class DataConsumer { this.consumerId = consumerId; } + /** + * 记录日志 + */ + public void log() { + log.debug("当前数据消费者:{} - {}", this.consumerId, this.streamId); + } + } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataProducer.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataProducer.java index 4fef17e..967bb91 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataProducer.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/DataProducer.java @@ -5,12 +5,14 @@ import java.util.concurrent.ConcurrentHashMap; import lombok.Getter; import lombok.Setter; +import lombok.extern.slf4j.Slf4j; /** * 数据生产者 * * @author acgist */ +@Slf4j @Setter @Getter public class DataProducer { @@ -39,4 +41,12 @@ public class DataProducer { this.dataConsumers = new ConcurrentHashMap<>(); } + /** + * 记录日志 + */ + public void log() { + log.debug("当前数据生产者:{} - {}", this.producerId, this.streamId); + this.dataConsumers.values().forEach(DataConsumer::log); + } + } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Producer.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Producer.java index 1de9336..541df70 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Producer.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Producer.java @@ -81,4 +81,12 @@ public class Producer implements Closeable { EventPublisher.publishEvent(new MediaProducerCloseEvent(this.producerId, this.room)); } + /** + * 记录日志 + */ + public void log() { + log.debug("当前生产者:{} - {} - {}", this.producerId, this.kind, this.streamId); + this.consumers.values().forEach(Consumer::log); + } + } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Room.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Room.java index af28658..100a655 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Room.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/Room.java @@ -239,5 +239,18 @@ public class Room implements Closeable { // TODO:媒体服务:直接没提服务关闭所有资源(通道、生产者、消费者) this.roomManager.remove(this); } + + /** + * 记录日志 + */ + public void log() { + log.info(""" + 当前房间:{} + 终端数量:{}""", + this.roomId, + this.clients.size() + ); + this.clients.values().forEach(ClientWrapper::log); + } } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/RoomManager.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/RoomManager.java index 06c516e..ccaad4a 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/RoomManager.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/party/media/RoomManager.java @@ -38,7 +38,6 @@ public class RoomManager { this.rooms = new CopyOnWriteArrayList<>(); } - /** * @param roomId 房间标识 * @@ -152,4 +151,15 @@ public class RoomManager { this.rooms.remove(room); } + /** + * 记录日志 + */ + public void log() { + log.info(""" + 当前房间数量:{}""", + this.rooms.size() + ); + this.rooms.forEach(Room::log); + } + }