[+] 事件定义
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.acgist.taoyao.live.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -30,4 +31,16 @@ public class LiveController {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
@Operation(summary = "直播状态", description = "直播状态")
|
||||
@GetMapping("/status/{id}")
|
||||
public Message status(@PathVariable String id) {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
@Operation(summary = "直播终端列表", description = "直播终端列表")
|
||||
@GetMapping("/list/client")
|
||||
public Message listClient() {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.acgist.taoyao.meeting.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -30,4 +31,16 @@ public class MeetingController {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
@Operation(summary = "会议状态", description = "会议状态")
|
||||
@GetMapping("/status/{id}")
|
||||
public Message status(@PathVariable String id) {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
@Operation(summary = "会议终端列表", description = "会议终端列表")
|
||||
@GetMapping("/list/client")
|
||||
public Message listClient() {
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 信令
|
||||
|
||||
## 信令
|
||||
## 信令格式
|
||||
|
||||
```
|
||||
{
|
||||
@@ -114,25 +114,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 终端列表信令(2006)
|
||||
|
||||
返回所有终端状态列表
|
||||
|
||||
```
|
||||
{}
|
||||
```
|
||||
|
||||
### 终端状态信令(2007)
|
||||
|
||||
返回指定终端状态(如果没有指定终端标识默认查询自己)
|
||||
|
||||
```
|
||||
{
|
||||
"sn": "终端标识"
|
||||
}
|
||||
```
|
||||
|
||||
### 单播信令(2008)
|
||||
### 单播信令(2006)
|
||||
|
||||
发送到指定的终端:删除`to`字段
|
||||
|
||||
@@ -143,7 +125,7 @@
|
||||
}
|
||||
```
|
||||
|
||||
### 广播信令(2009)
|
||||
### 广播信令(2007)
|
||||
|
||||
发送到所有的终端:排除自己
|
||||
|
||||
@@ -153,20 +135,42 @@
|
||||
}
|
||||
```
|
||||
|
||||
## 直播信令(3000~3999)
|
||||
### 终端状态信令(2998)
|
||||
|
||||
返回指定终端状态(如果没有指定终端标识默认查询自己)
|
||||
|
||||
```
|
||||
创建会议 -> 邀请终端|踢出终端|加入会议|离开会议 -> 光比会议
|
||||
{
|
||||
"sn": "终端标识"
|
||||
}
|
||||
```
|
||||
|
||||
### 终端列表信令(2999)
|
||||
|
||||
返回所有终端状态列表
|
||||
|
||||
```
|
||||
{}
|
||||
```
|
||||
|
||||
## 直播信令(3000~3999)
|
||||
|
||||
### 开启直播信令(3000)
|
||||
|
||||
### 关闭直播信令(3001)
|
||||
|
||||
### 直播终端列表信令(3002)
|
||||
### 直播终端列表信令(3997)
|
||||
|
||||
### 直播状态信令(3998)
|
||||
|
||||
### 直播列表信令(3999)
|
||||
|
||||
## 会议信令(4000~4999)
|
||||
|
||||
```
|
||||
创建会议 -> 邀请终端|踢出终端|加入会议|离开会议 -> 关闭会议
|
||||
```
|
||||
|
||||
### 创建会议信令(4000)
|
||||
|
||||
### 关闭会议信令(4001)
|
||||
@@ -189,7 +193,11 @@
|
||||
|
||||
广播
|
||||
|
||||
### 会议终端列表信令(4006)
|
||||
### 会议终端列表信令(4997)
|
||||
|
||||
### 会议状态信令(4998)
|
||||
|
||||
### 会议列表信令(4999)
|
||||
|
||||
## 媒体信令(5000~5999)
|
||||
|
||||
|
||||
@@ -107,6 +107,16 @@ public class ClientSessionManager {
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param sn 终端标识
|
||||
*
|
||||
* @return 终端状态
|
||||
*/
|
||||
public ClientSessionStatus status(String sn) {
|
||||
final ClientSession session = this.session(sn);
|
||||
return session == null ? null : session.status();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 所有终端会话
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.acgist.taoyao.signal.controller;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -30,4 +31,10 @@ public class ClientController {
|
||||
return Message.success(this.clientSessionManager.status());
|
||||
}
|
||||
|
||||
@Operation(summary = "终端状态", description = "终端状态")
|
||||
@GetMapping("/status/{sn}")
|
||||
public Message status(@PathVariable String sn) {
|
||||
return Message.success(this.clientSessionManager.status(sn));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.client.ClientSession;
|
||||
import com.acgist.taoyao.signal.event.client.CloseEvent;
|
||||
import com.acgist.taoyao.signal.listener.ApplicationListenerAdapter;
|
||||
import com.acgist.taoyao.signal.protocol.client.OfflineProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientOfflineProtocol;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -24,7 +24,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class CloseListener extends ApplicationListenerAdapter<CloseEvent> {
|
||||
|
||||
@Autowired
|
||||
private OfflineProtocol offlineProtocol;
|
||||
private ClientOfflineProtocol offlineProtocol;
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(CloseEvent event) {
|
||||
|
||||
@@ -10,8 +10,8 @@ import com.acgist.taoyao.signal.client.ClientSession;
|
||||
import com.acgist.taoyao.signal.client.ClientSessionStatus;
|
||||
import com.acgist.taoyao.signal.event.client.RegisterEvent;
|
||||
import com.acgist.taoyao.signal.listener.ApplicationListenerAdapter;
|
||||
import com.acgist.taoyao.signal.protocol.client.ConfigProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.OnlineProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientConfigProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientOnlineProtocol;
|
||||
|
||||
/**
|
||||
* 注册监听
|
||||
@@ -22,9 +22,9 @@ import com.acgist.taoyao.signal.protocol.client.OnlineProtocol;
|
||||
public class RegisterListener extends ApplicationListenerAdapter<RegisterEvent> {
|
||||
|
||||
@Autowired
|
||||
private ConfigProtocol configProtocol;
|
||||
private ClientConfigProtocol configProtocol;
|
||||
@Autowired
|
||||
private OnlineProtocol onlineProtocol;
|
||||
private ClientOnlineProtocol onlineProtocol;
|
||||
|
||||
@Async
|
||||
@Override
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.acgist.taoyao.boot.model.MessageCodeException;
|
||||
import com.acgist.taoyao.boot.utils.JSONUtils;
|
||||
import com.acgist.taoyao.signal.client.ClientSession;
|
||||
import com.acgist.taoyao.signal.client.ClientSessionManager;
|
||||
import com.acgist.taoyao.signal.protocol.client.RegisterProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientRegisterProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.platform.ErrorProtocol;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -95,7 +95,7 @@ public class ProtocolManager {
|
||||
return;
|
||||
}
|
||||
final ClientSession session = this.clientSessionManager.session(instance);
|
||||
if(protocol instanceof RegisterProtocol) {
|
||||
if(protocol instanceof ClientRegisterProtocol) {
|
||||
protocol.execute(sn, value, session);
|
||||
} else if(session.authorized() && sn.equals(session.sn())) {
|
||||
protocol.execute(sn, value, session);
|
||||
|
||||
@@ -14,14 +14,14 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class BroadcastProtocol extends ProtocolAdapter {
|
||||
public class ClientBroadcastProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2009;
|
||||
public static final Integer PID = 2007;
|
||||
|
||||
@Autowired
|
||||
private ClientSessionManager clientSessionManager;
|
||||
|
||||
public BroadcastProtocol() {
|
||||
public ClientBroadcastProtocol() {
|
||||
super(PID, "广播信令");
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ import lombok.extern.slf4j.Slf4j;
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CloseProtocol extends ProtocolAdapter {
|
||||
public class ClientCloseProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2001;
|
||||
|
||||
public CloseProtocol() {
|
||||
public ClientCloseProtocol() {
|
||||
super(PID, "关闭信令");
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class ConfigProtocol extends ProtocolAdapter {
|
||||
public class ClientConfigProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2004;
|
||||
|
||||
@@ -29,7 +29,7 @@ public class ConfigProtocol extends ProtocolAdapter {
|
||||
@Autowired
|
||||
private WebrtcProperties webrtcProperties;
|
||||
|
||||
public ConfigProtocol() {
|
||||
public ClientConfigProtocol() {
|
||||
super(PID, "信令协议标识");
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class HeartbeatProtocol extends ProtocolMapAdapter {
|
||||
public class ClientHeartbeatProtocol extends ProtocolMapAdapter {
|
||||
|
||||
public static final Integer PID = 2005;
|
||||
|
||||
public HeartbeatProtocol() {
|
||||
public ClientHeartbeatProtocol() {
|
||||
super(PID, "心跳信令");
|
||||
}
|
||||
|
||||
@@ -14,14 +14,14 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class ListProtocol extends ProtocolAdapter {
|
||||
public class ClientListProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2006;
|
||||
public static final Integer PID = 2999;
|
||||
|
||||
@Autowired
|
||||
private ClientSessionManager clientSessionManager;
|
||||
|
||||
public ListProtocol() {
|
||||
public ClientListProtocol() {
|
||||
super(PID, "终端列表信令");
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class OfflineProtocol extends ProtocolAdapter {
|
||||
public class ClientOfflineProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2003;
|
||||
|
||||
public OfflineProtocol() {
|
||||
public ClientOfflineProtocol() {
|
||||
super(PID, "终端下线信令");
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class OnlineProtocol extends ProtocolAdapter {
|
||||
public class ClientOnlineProtocol extends ProtocolAdapter {
|
||||
|
||||
public static final Integer PID = 2002;
|
||||
|
||||
public OnlineProtocol() {
|
||||
public ClientOnlineProtocol() {
|
||||
super(PID, "上线信令");
|
||||
}
|
||||
|
||||
@@ -19,14 +19,14 @@ import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
|
||||
* @author acgist
|
||||
*/
|
||||
@Component
|
||||
public class RegisterProtocol extends ProtocolMapAdapter {
|
||||
public class ClientRegisterProtocol extends ProtocolMapAdapter {
|
||||
|
||||
public static final Integer PID = 2000;
|
||||
|
||||
@Autowired
|
||||
private SecurityProperties securityProperties;
|
||||
|
||||
public RegisterProtocol() {
|
||||
public ClientRegisterProtocol() {
|
||||
super(PID, "注册信令");
|
||||
}
|
||||
|
||||
@@ -11,23 +11,20 @@ import com.acgist.taoyao.signal.client.ClientSession;
|
||||
import com.acgist.taoyao.signal.client.ClientSessionManager;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 终端状态信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class StatusProtocol extends ProtocolMapAdapter {
|
||||
public class ClientStatusProtocol extends ProtocolMapAdapter {
|
||||
|
||||
public static final Integer PID = 2007;
|
||||
public static final Integer PID = 2998;
|
||||
|
||||
@Autowired
|
||||
private ClientSessionManager clientSessionManager;
|
||||
|
||||
public StatusProtocol() {
|
||||
public ClientStatusProtocol() {
|
||||
super(PID, "终端状态信令");
|
||||
}
|
||||
|
||||
@@ -38,13 +35,8 @@ public class StatusProtocol extends ProtocolMapAdapter {
|
||||
if(StringUtils.isEmpty(querySn)) {
|
||||
querySn = sn;
|
||||
}
|
||||
final ClientSession clientSession = this.clientSessionManager.session(querySn);
|
||||
if(clientSession != null) {
|
||||
message.setBody(clientSession.status());
|
||||
session.push(message);
|
||||
} else {
|
||||
log.warn("终端无效:{}", querySn);
|
||||
}
|
||||
message.setBody(this.clientSessionManager.status(querySn));
|
||||
session.push(message);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,14 +20,14 @@ import lombok.extern.slf4j.Slf4j;
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class UnicastProtocol extends ProtocolMapAdapter {
|
||||
public class ClientUnicastProtocol extends ProtocolMapAdapter {
|
||||
|
||||
public static final Integer PID = 2008;
|
||||
public static final Integer PID = 2006;
|
||||
|
||||
@Autowired
|
||||
private ClientSessionManager clientSessionManager;
|
||||
|
||||
public UnicastProtocol() {
|
||||
public ClientUnicastProtocol() {
|
||||
super(PID, "单播信令");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.live;
|
||||
|
||||
public class LiveClientListProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.live;
|
||||
|
||||
public class LiveCloseProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.live;
|
||||
|
||||
public class LiveListProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.live;
|
||||
|
||||
public class LiveRegisterProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.live;
|
||||
|
||||
public class LiveStatusProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaPauseProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaPublishProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaResumeProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaStartRecordProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaStopRecordProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaSubscribeProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaUnpublishProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.media;
|
||||
|
||||
public class MediaUnsubscribeProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingClientListProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingCloseProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingEnterProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingExpelProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingInviteProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingLeaveProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingListProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingRegisterProtocol {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingStatusProtocol {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user