Files
taoyao/taoyao-signal/README.md
2022-11-20 11:14:44 +08:00

311 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 信令
## 信令格式
```
{
"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": "终端标识"
}
```
### 终端下线信令2003
服务端->终端:参考[终端关闭信令](#关闭信令)
```
{
"sn": "终端标识"
}
```
### 下发配置信令2004
服务端->终端:参考[注册信令](#注册信令)
```
{
"time": "系统时间yyyyMMddHHmmss",
"media": "媒体配置",
"webrtc": "WebRTC配置"
}
```
### 心跳信令2005
心跳:响应
```
{
"signal": "信号强度",
"battery": "电池电量"
}
```
### 单播信令2006
发送到指定的终端:删除`to`字段
```
{
"to": "接收终端标识",
// 主体信息
}
```
### 广播信令2007
发送到所有的终端:排除自己
```
{
// 主体信息
}
```
### 终端状态信令2998
返回指定终端状态(如果没有指定终端标识默认查询自己)
```
{
"sn": "终端标识"
}
```
### 终端列表信令2999
返回所有终端状态列表
```
{}
```
## 直播信令3000~3999
### 开启直播信令3000
### 关闭直播信令3001
### 直播终端列表信令3997
### 直播状态信令3998
### 直播列表信令3999
## 会议信令4000~4999
### 创建会议信令4000
#### 消息主体
```
{}
----
{
"id": "会议标识"
}
```
#### 消息流程:终端->服务端+)终端
### 关闭会议信令4001
释放资源、广播广播
### 进入会议信令4002
广播
### 离开会议信令4003
广播
### 邀请终端信令4004
邀请终端进入会议,终端确认进入发送进入会议信令。
### 踢出终端信令4005
广播
### 会议终端列表信令4997
### 会议状态信令4998
### 会议列表信令4999
## 媒体信令5000~5999
### 发布信令5000
控制终端推流(服务端拉流)
### 取消发布指令5001
控制终端暂停推流(服务端取消拉流)
### 订阅指令5002
订阅终端媒体流(终端拉流)
### 取消订阅指令5003
取消订阅终端媒体流(终端取消拉流)
### 暂停指令5004
终端->服务端
暂停发布、订阅(不关媒体流通道)
MCU/SFU模式有效
### 恢复指令5005
终端->服务端
暂停发布、订阅(不关媒体流通道)
MCU/SFU模式有效
### 开启录像5006
### 停止录像5007
### 配置媒体5008
配置订阅媒体:码率、帧率、分辨率等等
### IceCandidate
### Offer
### Answer
## 测试
```
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":{}}');
```