[*] 结构调整

This commit is contained in:
acgist
2023-02-02 19:43:26 +08:00
parent 1de076ae16
commit d09a9dbc1f
201 changed files with 4 additions and 4 deletions

View File

@@ -0,0 +1,402 @@
# 信令
## 信令格式
```
{
"header": {
"v": "版本",
"id": 请求标识,
"sn": "设备标识"
"pid": 信令标识,
},
"code": "响应编码",
"message": "响应描述",
"body": {
// 信令主体
}
}
```
### 符号解释
```
-> 单播:定向传播信令
-) 广播:广播信令(排除自己)
+) 全员广播:广播信令(包含自己)
```
## 平台信令1000~1999
### 关闭服务信令1000
#### 消息主体
```
# 请求
{}
# 广播
{}
```
#### 消息流程:终端->服务端+)终端
全员广播[关闭服务信令](#关闭服务信令1000),然后关闭信令服务。
### 执行命令信令1001
#### 消息主体
```
# 请求
{
"script": "命令"
}
# 响应
{
"result": "结果"
}
```
#### 消息流程:终端->服务端->终端
执行命令同时响应结果
### 异常信令1999
#### 消息主体
```
{}
```
## 终端信令2000~2999
### 终端信息
### 终端注册信令2000
#### 消息主体
```
# 请求
{
"username": "信令授权用户",
"password": "信令授权密码",
"ip": "IP地址",
"mac": "MAC地址",
"signal": "信号强度",
"battery": "电池电量"
}
# 响应
{}
# 广播
{
"sn": "终端标识",
"ip": "IP地址",
"mac": "MAC地址",
"signal": "信号强度",
"battery": "电池电量"
}
```
#### 消息流程:终端->服务端-)终端
终端注册成功以后响应同时[下发配置信令](#下发配置信令2004),并且广播[终端上线信令](#终端上线信令2002)。
### 终端关闭信令2001
#### 消息主体
```
# 请求
{}
# 广播
{
"sn": "终端标识"
}
```
#### 消息流程:终端-)服务端
终端关闭以后广播[终端下线信令](#终端下线信令2003),同时释放所有相关资源(信令通道、媒体通道等等)
### 终端上线信令2002
#### 消息主体
```
{
"sn": "终端标识"
}
```
#### 消息流程:服务端->终端
参考[终端注册信令](#终端注册信令2000)
### 终端下线信令2003
#### 消息主体
```
{
"sn": "终端标识"
}
```
#### 消息流程:服务端->终端
参考[终端关闭信令](#终端关闭信令2001)
### 下发配置信令2004
#### 消息主体
```
{
"time": "系统时间yyyyMMddHHmmss",
"media": "媒体配置",
"webrtc": "WebRTC配置"
}
```
#### 消息流程:服务端->终端
参考[终端注册信令](#终端注册信令2000)
### 心跳信令2005
#### 消息主体
```
# 请求
{
"signal": "信号强度",
"battery": "电池电量"
}
# 响应
{}
```
#### 消息流程:终端->服务端->终端
### 单播信令2006
#### 消息主体
```
# 请求
{
"to": "接收终端标识",
// 主体信息
}
# 转发
{
// 主体信息
}
```
#### 消息流程:终端->服务端->终端
终端转发信令到指定的终端
### 广播信令2007
#### 消息主体
```
# 请求
{
// 主体信息
}
# 广播
{
// 主体信息
}
```
#### 消息流程:终端->服务端-)终端
终端广播信令到所有的终端
### 重启终端信令2997
#### 消息主体
```
# 请求
{
}
```
#### 消息流程:服务器->终端
重启终端
### 终端状态信令2998
#### 消息主体
```
# 请求
{
"sn": "终端标识"
}
# 响应
{
"sn": "终端标识",
"ip": "IP地址",
"mac": "MAC地址",
"signal": "信号强度",
"battery": "电池电量"
}
```
#### 消息流程:终端->服务端->终端
响应指定终端状态(如果没有指定终端标识默认查询自己)
### 终端列表信令2999
#### 消息主体
```
# 请求
{}
# 响应
[
{
"sn": "终端标识",
"ip": "IP地址",
"mac": "MAC地址",
"signal": "信号强度",
"battery": "电池电量"
},
...
]
```
#### 消息流程:终端->服务端->终端
响应所有终端状态列表
## 直播信令3000~3999
### 开启直播信令3000
### 关闭直播信令3001
### 直播广播信令3002
### 直播终端列表信令3997
### 直播状态信令3998
### 直播列表信令3999
## 会议信令4000~4999
### 创建会议信令4000
#### 消息主体
```
{}
----
{
"id": "会议标识"
}
```
#### 消息流程:终端->服务端+)终端
### 关闭会议信令4001
释放资源、广播广播
### 进入会议信令4002
#### 消息主体
```
# 请求
{
"id": "会议标识"
}
# 广播
{
"id": "会议标识",
"sn": "终端标识"
}
```
#### 消息流程:终端->服务端-)终端
终端进入会议,广播通知其他终端。
### 离开会议信令4003
广播
### 邀请终端信令4004
邀请终端进入会议,终端确认进入发送进入会议信令。
### 踢出终端信令4005
广播
### 会议广播信令4006
### 会议终端列表信令4997
### 会议状态信令4998
### 会议列表信令4999
## 媒体信令5000~5999
### 发布信令5000
控制终端推流(服务端拉流)
### 取消发布指令5001
控制终端暂停推流(服务端取消拉流)
### 订阅指令5002
订阅终端媒体流(终端拉流)
### 取消订阅指令5003
取消订阅终端媒体流(终端取消拉流)
### 暂停信令5004
终端->服务端
暂停发布、订阅(不关媒体流通道)
Moon模式有效
### 恢复信令5005
终端->服务端
暂停发布、订阅(不关媒体流通道)
Moon模式有效
### 开启录像信令5006
### 停止录像信令5007
### 配置媒体信令5008
配置订阅媒体:码率、帧率、分辨率等等
## 测试
```
let socket = new WebSocket("wss://localhost:8888/websocket.signal");
socket.send('{"header":{"pid":2000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{"username":"taoyao","password":"taoyao"}}');
socket.send('{"header":{"pid":1000,"v":"1.0.0","id":"1","sn":"taoyao"},"body":{}}');
```