[*] 调整逻辑
This commit is contained in:
@@ -273,6 +273,8 @@
|
||||
|
||||
### 关闭直播信令(3001)
|
||||
|
||||
### 直播广播信令(3002)
|
||||
|
||||
### 直播终端列表信令(3997)
|
||||
|
||||
### 直播状态信令(3998)
|
||||
@@ -331,6 +333,8 @@
|
||||
|
||||
广播
|
||||
|
||||
### 会议广播信令(4006)
|
||||
|
||||
### 会议终端列表信令(4997)
|
||||
|
||||
### 会议状态信令(4998)
|
||||
|
||||
@@ -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();
|
||||
|
||||
/**
|
||||
* 推送消息
|
||||
*
|
||||
|
||||
@@ -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<T extends AutoCloseable> 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<T extends AutoCloseable> 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;
|
||||
|
||||
@@ -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<Router> from();
|
||||
|
||||
List<Router> to();
|
||||
|
||||
void fromRouteTo(String from, String to);
|
||||
|
||||
void fromOrTo(String sn);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.acgist.taoyao.signal.media.processor;
|
||||
|
||||
/**
|
||||
* 媒体处理:混音、美颜等等
|
||||
*
|
||||
* 处理完成发送订阅者
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public interface Processor {
|
||||
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package com.acgist.taoyao.signal.media.router;
|
||||
|
||||
/**
|
||||
* 终端媒体流路由(推流->拉流)
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public interface ClientMediaStreamRouter {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.acgist.taoyao.signal.media.router;
|
||||
|
||||
/**
|
||||
* 直播会议路由绑定
|
||||
*
|
||||
* 发布者->订阅者
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public interface Router {
|
||||
|
||||
void from();
|
||||
|
||||
void to();
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.acgist.taoyao.signal.media;
|
||||
package com.acgist.taoyao.signal.media.stream;
|
||||
|
||||
/**
|
||||
* 终端媒体操作
|
||||
@@ -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<String, ClientMediaStream> streams = new ConcurrentHashMap<>();
|
||||
|
||||
|
||||
/**
|
||||
* 发布
|
||||
*
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* 终端媒体订阅者(终端拉流)
|
||||
*
|
||||
Reference in New Issue
Block a user