diff --git a/taoyao-signal/README.md b/taoyao-signal/README.md index 5ea43d8..4760381 100644 --- a/taoyao-signal/README.md +++ b/taoyao-signal/README.md @@ -273,6 +273,8 @@ ### 关闭直播信令(3001) +### 直播广播信令(3002) + ### 直播终端列表信令(3997) ### 直播状态信令(3998) @@ -331,6 +333,8 @@ 广播 +### 会议广播信令(4006) + ### 会议终端列表信令(4997) ### 会议状态信令(4998) diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java index faecb9a..dc3c01f 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSession.java @@ -1,8 +1,6 @@ package com.acgist.taoyao.signal.client; import com.acgist.taoyao.boot.model.Message; -import com.acgist.taoyao.signal.media.ClientMediaPublisher; -import com.acgist.taoyao.signal.media.ClientMediaSubscriber; /** * 终端会话 @@ -23,16 +21,6 @@ public interface ClientSession extends AutoCloseable { */ ClientSessionStatus status(); - /** - * @return 终端媒体发布者 - */ - ClientMediaPublisher publisher(); - - /** - * @return 终端媒体订阅者 - */ - ClientMediaSubscriber subscriber(); - /** * 推送消息 * diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java index fa485c4..911056f 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/client/ClientSessionAdapter.java @@ -2,9 +2,6 @@ package com.acgist.taoyao.signal.client; import org.apache.commons.lang3.StringUtils; -import com.acgist.taoyao.signal.media.ClientMediaPublisher; -import com.acgist.taoyao.signal.media.ClientMediaSubscriber; - /** * 会话适配器 * @@ -32,22 +29,12 @@ public abstract class ClientSessionAdapter implements C * 终端状态 */ protected ClientSessionStatus status; - /** - * 终端媒体发布者 - */ - protected ClientMediaPublisher publisher; - /** - * 终端媒体订阅者 - */ - protected ClientMediaSubscriber subscriber; protected ClientSessionAdapter(T instance) { this.time = System.currentTimeMillis(); this.instance = instance; this.authorized = false; this.status = new ClientSessionStatus(); - this.publisher = new ClientMediaPublisher(); - this.subscriber = new ClientMediaSubscriber(); } @Override @@ -60,16 +47,6 @@ public abstract class ClientSessionAdapter implements C return this.status; } - @Override - public ClientMediaPublisher publisher() { - return this.publisher; - } - - @Override - public ClientMediaSubscriber subscriber() { - return this.subscriber; - } - @Override public boolean timeout(long timeout) { return !this.authorized && System.currentTimeMillis() - this.time > timeout; diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/RouterManager.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/RouterManager.java new file mode 100644 index 0000000..2174009 --- /dev/null +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/RouterManager.java @@ -0,0 +1,19 @@ +package com.acgist.taoyao.signal.media; + +import java.util.List; + +import com.acgist.taoyao.signal.media.router.Router; + +public interface RouterManager { + + void bindId(); + + List from(); + + List to(); + + void fromRouteTo(String from, String to); + + void fromOrTo(String sn); + +} diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/Processor.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/Processor.java new file mode 100644 index 0000000..d2ca90a --- /dev/null +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/processor/Processor.java @@ -0,0 +1,12 @@ +package com.acgist.taoyao.signal.media.processor; + +/** + * 媒体处理:混音、美颜等等 + * + * 处理完成发送订阅者 + * + * @author acgist + */ +public interface Processor { + +} diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouter.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouter.java deleted file mode 100644 index a76aa2c..0000000 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.acgist.taoyao.signal.media.router; - -/** - * 终端媒体流路由(推流->拉流) - * - * @author acgist - */ -public interface ClientMediaStreamRouter { - -} diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouterAdapter.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouterAdapter.java deleted file mode 100644 index cfb2b0c..0000000 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/ClientMediaStreamRouterAdapter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.acgist.taoyao.signal.media.router; - -import com.acgist.taoyao.signal.media.stream.ClientMediaStream; - -public class ClientMediaStreamRouterAdapter { - - ClientMediaStream source; - ClientMediaStream target; - -} diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/Router.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/Router.java new file mode 100644 index 0000000..de9e2e6 --- /dev/null +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/router/Router.java @@ -0,0 +1,16 @@ +package com.acgist.taoyao.signal.media.router; + +/** + * 直播会议路由绑定 + * + * 发布者->订阅者 + * + * @author acgist + */ +public interface Router { + + void from(); + + void to(); + +} diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaHandler.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaHandler.java similarity index 91% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaHandler.java rename to taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaHandler.java index 122e57f..450f8a6 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaHandler.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaHandler.java @@ -1,4 +1,4 @@ -package com.acgist.taoyao.signal.media; +package com.acgist.taoyao.signal.media.stream; /** * 终端媒体操作 diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaPublisher.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaPublisher.java similarity index 92% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaPublisher.java rename to taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaPublisher.java index 7bc9d03..1d0feca 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaPublisher.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaPublisher.java @@ -1,16 +1,16 @@ -package com.acgist.taoyao.signal.media; +package com.acgist.taoyao.signal.media.stream; import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import com.acgist.taoyao.signal.media.stream.ClientMediaStream; - import lombok.extern.slf4j.Slf4j; /** * 终端媒体流发布者(终端推流) * + * 通过处理器发送给订阅者 + * * @author acgist */ @Slf4j @@ -21,7 +21,6 @@ public class ClientMediaPublisher implements ClientMediaHandler { */ private Map streams = new ConcurrentHashMap<>(); - /** * 发布 * diff --git a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaSubscriber.java b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaSubscriber.java similarity index 90% rename from taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaSubscriber.java rename to taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaSubscriber.java index 9322c5a..ed89d4d 100644 --- a/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/ClientMediaSubscriber.java +++ b/taoyao-signal/src/main/java/com/acgist/taoyao/signal/media/stream/ClientMediaSubscriber.java @@ -1,10 +1,8 @@ -package com.acgist.taoyao.signal.media; +package com.acgist.taoyao.signal.media.stream; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import com.acgist.taoyao.signal.media.stream.ClientMediaStream; - /** * 终端媒体订阅者(终端拉流) *