[+] media::transport::webrtc::connect

This commit is contained in:
acgist
2023-02-19 11:57:09 +08:00
parent 9023883c5b
commit fd505dfbd2
105 changed files with 1511 additions and 2116 deletions

View File

@@ -2,392 +2,7 @@
## 信令格式
```
{
"header": {
"v": "版本",
"id": 请求标识,
"signal": "信令标识",
"clientId": "设备标识"
},
"code": "响应编码",
"message": "响应描述",
"body": {
// 信令主体
}
}
```
### 术语解释
```
请求:终端->信令服务 || 信令服务->媒体服务
响应:信令服务->终端 || 服务媒体->信令服务
广播:信令服务-)终端 || 信令服务+)终端
```
### 符号解释
```
-[消息类型]> 请求(单播):定向请求(单播)信令
-[消息类型]) 全员广播:对所有的终端广播信令(排除自己)
+[消息类型]) 全员广播:对所有的终端广播信令(包含自己)
```
> 注意:没有消息类型表示请求类型
## 终端信令
### 终端广播信令client::broadcast
```
# 请求主体
{
// 主体
}
# 广播主体
{
// 主体
}
# 消息流程:终端->信令服务-)终端
```
### 终端关闭信令client::close
```
# 请求主体
{
}
# 响应主体
{
}
# 消息流程:终端->信令服务->终端
# 消息流程:终端->信令服务-[终端下线])终端
```
### 终端配置信令client::config
```
# 响应主体
{
"time": "系统时间yyyyMMddHHmmss",
"media": "媒体配置",
"webrtc": "WebRTC配置"
}
# 消息流程:终端-[终端注册]>信令服务->终端
```
### 终端心跳信令client::heartbeat
```
# 请求主体
{
"signal": 信号强度0~100,
"battery": 电池电量0~100,
"charging": 是否正在充电true|false
}
# 响应主体
{
}
# 消息流程:终端->信令服务->终端
```
### 终端列表信令client::list
```
# 请求主体
{
}
# 响应主体
[
{
"clientId": "终端标识",
"ip": "终端IP",
"signal": 信号强度0~100,
"battery": 电池电量0~100,
"charging": 是否正在充电true|false,
"mediaId": "媒体服务标识",
"lastHeartbeat": "最后心跳时间"
},
...
]
# 消息流程:终端->信令服务->终端
```
### 终端下线信令client::offline
```
# 广播主体
{
"clientId": "下线终端标识"
}
# 消息流程:终端-[终端关闭]>信令服务-)终端
```
### 终端上线信令client::online
```
# 广播主体
{
"clientId": "终端标识",
"ip": "终端IP",
"signal": 信号强度0~100,
"battery": 电池电量0~100,
"charging": 是否正在充电true|false,
"mediaId": "媒体服务标识",
"lastHeartbeat": "最后心跳时间"
}
# 消息流程:终端-[终端注册]>信令服务-)终端
```
### 重启终端信令client::reboot
```
# 响应主体
{
}
# 消息流程:信令服务->终端
```
### 终端注册信令client::register
```
# 请求主体
{
"username": "信令用户",
"password": "信令密码",
"clientId": "终端标识",
"ip": "终端IP",
"signal": 信号强度0~100,
"battery": 电池电量0~100,
"charging": 是否正在充电true|false
}
# 响应主体
{
}
# 消息流程:终端->信令服务->终端
# 消息流程:终端->信令服务-[终端上线])终端
```
### 终端状态信令client::status
```
# 请求主体
{
"clientId": "终端标识"
}
# 响应主体
{
"clientId": "终端标识",
"ip": "终端IP",
"signal": 信号强度0~100,
"battery": 电池电量0~100,
"charging": 是否正在充电true|false,
"mediaId": "媒体服务标识",
"lastHeartbeat": "最后心跳时间"
}
# 消息流程:终端->信令服务->终端
```
### 终端单播信令client::unicast
```
# 请求主体
{
"to": "接收终端标识",
// 主体信息
}
# 响应主体
{
// 主体信息
}
# 消息流程:终端->信令服务->终端
```
## 媒体服务信令
### 媒体服务列表信令media::list
```
# 请求主体:
{
}
# 响应主体:
[
{
"name": "名称",
"enabled": "是否启用",
"host": "主机",
"port": "端口",
"schema": "协议",
"address": "完整地址"
}
]
# 消息流程:终端->信令服务->终端
```
### 重启媒体服务信令media::reboot
```
# 请求主体:
{
}
# 响应主体:
{
}
# 消息流程:终端->信令服务+)终端
```
### 媒体服务注册信令media::register
```
# 请求主体:
{
"username": "媒体用户",
"password": "媒体密码"
}
# 响应主体:
{
}
# 消息流程:信令服务->媒体服务->信令服务
```
## 平台信令
### 异常信令platform::error
通知执行信令时发生的异常
```
# 响应主体:
{
}
# 消息流程:终端->信令服务->终端
```
### 关闭平台信令platform::reboot
```
# 请求主体:
{
}
# 广播主体:
{
}
# 消息流程:终端->信令服务+)终端
```
### 执行命令信令platform::script
```
# 请求主体
{
"script": "命令"
}
# 响应主体
{
"result": "结果"
}
# 消息流程:终端->服务端->终端
```
### 关闭平台信令platform::shutdown
```
# 请求主体:
{
}
# 广播主体:
{
}
# 消息流程:终端->信令服务+)终端
```
## 房间信令4000~4999
### 创建房间信令4000
#### 消息主体
```
{}
----
{
"id": "房间标识"
}
```
#### 消息流程:终端->服务端+)终端
### 关闭房间信令4001
释放资源、广播广播
### 进入房间信令4002
#### 消息主体
```
# 请求
{
"id": "房间标识"
}
# 广播
{
"id": "房间标识",
"clientId": "终端标识"
}
```
#### 消息流程:终端->服务端-)终端
终端进入房间,广播通知其他终端。
### 离开房间信令4003
广播
### 邀请终端信令4004
邀请终端进入房间,终端确认进入发送进入房间信令。
### 踢出终端信令4005
广播
### 房间广播信令4006
### 房间终端列表信令4997
### 房间状态信令4998
### 房间列表信令4999
## 系统信令
### 重启系统信令system::reboot
```
# 请求主体:
{
}
# 广播主体:
{
}
# 消息流程:终端->信令服务+)终端
```
### 关闭系统信令system::shutdown
```
# 请求主体:
{
}
# 广播主体:
{
}
# 消息流程:终端->信令服务+)终端
```
[信令格式](https://localhost:8888/protocol/list)
## 测试
@@ -395,4 +10,4 @@
let socket = new WebSocket("wss://localhost:8888/websocket.signal");
socket.send('{"header":{"signal":"client::register","v":"1.0.0","id":"1"},"body":{"username":"taoyao","password":"taoyao","clientId":"taoyao"}}');
socket.send('{"header":{"signal":"client::heartbeat","v":"1.0.0","id":"1"},"body":{}}');
```
```