[*] 日常优化
This commit is contained in:
401
docs/Protocol.md
401
docs/Protocol.md
@@ -19,8 +19,8 @@
|
||||
### 符号解释
|
||||
|
||||
```
|
||||
-[消息类型]> 异步请求 | 单播
|
||||
=[消息类型]> 同步请求
|
||||
-[消息类型]> 异步请求 | 单播消息
|
||||
=[消息类型]> 同步请求:到达目标终端后沿原路返回
|
||||
-[消息类型]) 全员广播:对所有的终端广播信令(排除自己)
|
||||
+[消息类型]) 全员广播:对所有的终端广播信令(包含自己)
|
||||
...:其他自定义的透传内容
|
||||
@@ -56,18 +56,22 @@
|
||||
|
||||
### 关闭终端信令(client::close)
|
||||
|
||||
同时释放所有资源,所以如果终端意外掉线重连,需要终端实现音视频重连逻辑。
|
||||
信令连接断开以后执行,同时释放所有资源。
|
||||
如果终端意外掉线,需要自己实现重连逻辑。
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端->信令服务-[终端下线])终端
|
||||
终端=>信令服务
|
||||
终端=[关闭终端]>信令服务-[终端下线])终端
|
||||
终端-[连接断开]>信令服务-[终端下线])终端
|
||||
```
|
||||
|
||||
### 终端配置信令(client::config)
|
||||
|
||||
终端应该在收到配置之后进行媒体操作
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -76,7 +80,7 @@
|
||||
"datetime": "日期时间(yyyyMMddHHmmss)"
|
||||
}
|
||||
# 数据流向
|
||||
终端=[终端注册]>信令服务->终端
|
||||
终端=[终端注册]>信令服务-[终端配置]>终端
|
||||
```
|
||||
|
||||
### 终端心跳信令(client::heartbeat)
|
||||
@@ -92,7 +96,8 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
@@ -124,7 +129,8 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
@@ -132,7 +138,7 @@
|
||||
...
|
||||
]
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 终端下线信令(client::offline)
|
||||
@@ -143,7 +149,8 @@
|
||||
"clientId": "下线终端ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端-[终端关闭]>信令服务-)终端
|
||||
终端=[关闭终端]>信令服务-[终端下线])终端
|
||||
终端-[连接断开]>信令服务-[终端下线])终端
|
||||
```
|
||||
|
||||
### 终端上线信令(client::online)
|
||||
@@ -163,7 +170,8 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
@@ -183,6 +191,8 @@
|
||||
|
||||
### 终端注册信令(client::register)
|
||||
|
||||
收到注册响应之后应该设置终端的终端索引
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -199,13 +209,14 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->终端
|
||||
终端=>信令服务
|
||||
终端=>信令服务-[终端配置]>终端
|
||||
终端=>信令服务-[终端上线])终端
|
||||
```
|
||||
@@ -241,13 +252,14 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 终端单播信令(client::unicast)
|
||||
@@ -265,15 +277,6 @@
|
||||
终端->信令服务->终端
|
||||
```
|
||||
|
||||
### 终端唤醒信令(client::wakeup)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{}
|
||||
# 数据流向
|
||||
信令服务->终端
|
||||
```
|
||||
|
||||
### 响铃信令(control::bell)
|
||||
|
||||
```
|
||||
@@ -283,8 +286,8 @@
|
||||
"enabled": 是否响铃(true|false)
|
||||
}
|
||||
# 数据流向
|
||||
信令服务->终端
|
||||
终端->信令服务->终端
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
### 终端录像信令(control::client::record)
|
||||
@@ -300,8 +303,8 @@
|
||||
"filepath": "视频文件路径"
|
||||
}
|
||||
# 数据流向
|
||||
信令服务->目标终端->信令服务
|
||||
终端=>信令服务->目标终端->信令服务->终端
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
### 配置音频信令(control::config::audio)
|
||||
@@ -315,7 +318,7 @@
|
||||
...MediaAudioProperties
|
||||
}
|
||||
# 数据流向
|
||||
信令服务->终端
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
@@ -330,7 +333,7 @@
|
||||
...MediaVideoProperties
|
||||
}
|
||||
# 数据流向
|
||||
信令服务->终端
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
@@ -345,8 +348,8 @@
|
||||
"filepath": "图片文件路径"
|
||||
}
|
||||
# 数据流向
|
||||
信令服务->目标终端->信令服务
|
||||
终端=>信令服务->目标终端->信令服务->终端
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
### 服务端录像信令(control::server::record)
|
||||
@@ -368,6 +371,18 @@
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
### 终端唤醒信令(control::wakeup)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"to": "目标终端ID"
|
||||
}
|
||||
# 数据流向
|
||||
信令服务=>终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
### 终端音量信令(media::audio::volume)
|
||||
|
||||
```
|
||||
@@ -383,7 +398,7 @@
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务->终端
|
||||
媒体服务->信令服务-)终端
|
||||
```
|
||||
|
||||
### 消费媒体信令(media::consume)
|
||||
@@ -395,17 +410,32 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间ID"
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"clientId" : "消费者ID",
|
||||
"sourceId" : "生产者ID",
|
||||
"streamId" : "媒体ID",
|
||||
"producerId" : "生产者ID",
|
||||
"consumerId" : "消费者ID",
|
||||
"kind" : "消费者媒体类型",
|
||||
"type" : "消费者类型",
|
||||
"appData" : "APP数据",
|
||||
"rtpParameters" : "RTP参数",
|
||||
"producerPaused": "生产者是否暂停",
|
||||
}
|
||||
# 数据流向
|
||||
终端-[生产媒体]>信令服务-[其他终端消费])信令服务
|
||||
终端-[创建WebRTC消费通道]>信令服务-[消费其他终端])信令服务
|
||||
终端->信令服务->媒体服务=>信令服务->终端->信令服务->媒体服务
|
||||
终端->信令服务->媒体服务=>信令服务->终端
|
||||
终端-[生产媒体]>信令服务-[消费媒体])信令服务=>信令服务->终端
|
||||
终端-[创建WebRTC通道]>信令服务-[消费媒体])信令服务=>信令服务->终端
|
||||
```
|
||||
|
||||
### 关闭消费者信令(media::consumer::close)
|
||||
|
||||
关闭通过回调实现所以不能同步响应
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -413,8 +443,23 @@
|
||||
"consumerId": "消费者ID"
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务-)终端
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
媒体服务->信令服务->终端
|
||||
信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 消费者空间层和时间层改变信令(media::consumer::layers::change)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
"consumerId" : "消费者ID",
|
||||
"spatialLayer" : 最佳空间层,
|
||||
"temporalLayer": 最佳时间层
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务+)终端
|
||||
```
|
||||
|
||||
### 暂停消费者信令(media::consumer::pause)
|
||||
@@ -427,6 +472,7 @@
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端-[暂停生产者]>信令服务->媒体服务-[暂停消费者]>信令服务->终端
|
||||
```
|
||||
|
||||
### 请求关键帧信令(media::consumer::request::key::frame)
|
||||
@@ -438,7 +484,7 @@
|
||||
"consumerId": "消费者ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 恢复消费者信令(media::consumer::resume)
|
||||
@@ -451,6 +497,7 @@
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端-[恢复生产者]>信令服务->媒体服务-[恢复消费者]>信令服务->终端
|
||||
```
|
||||
|
||||
### 媒体消费者评分信令(media::consumer::score)
|
||||
@@ -458,12 +505,16 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"score": "消费者RTP流得分表示传输质量:0~10",
|
||||
"producerScore": "生产者RTP流得分表示传输质量:0~10",
|
||||
"producerScores": [所有生产者RTP流得分]
|
||||
"roomId" : "房间ID"
|
||||
"consumerId": "消费者ID"
|
||||
"score" : {
|
||||
"score" : 消费者RTP流得分表示传输质量:0~10,
|
||||
"producerScore" : 生产者RTP流得分表示传输质量:0~10,
|
||||
"producerScores": [Simulcast生产者RTP流得分]
|
||||
}
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务->终端
|
||||
媒体服务->信令服务+)终端
|
||||
```
|
||||
|
||||
### 修改最佳空间层和时间层信令(media::consumer::set::preferred::layers)
|
||||
@@ -477,11 +528,13 @@
|
||||
"temporalLayer": 最佳时间层
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 设置消费者优先级信令(media::consumer::set::priority)
|
||||
|
||||
如果优先级不在范围内表示取消优先级设置
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -490,7 +543,7 @@
|
||||
"priority" : 优先级(1~255)
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端->信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 查询消费者状态信令(media::consumer::status)
|
||||
@@ -501,8 +554,15 @@
|
||||
"roomId" : "房间ID",
|
||||
"consumerId": "消费者ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"consumerId": "消费者ID",
|
||||
"status" : [
|
||||
...状态信息
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 消费数据信令(media::data::consume)
|
||||
@@ -516,11 +576,13 @@
|
||||
"producerId": "生产者ID",
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->媒体服务
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 关闭数据消费者信令(media::data::consumer::close)
|
||||
|
||||
关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -528,8 +590,9 @@
|
||||
"consumerId": "数据消费者ID"
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务-)终端
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
媒体服务->信令服务->终端
|
||||
信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 查询数据消费者状态信令(media::data::consumer::status)
|
||||
@@ -540,8 +603,15 @@
|
||||
"roomId" : "房间ID",
|
||||
"consumerId": "数据消费者ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"consumerId": "数据消费者ID",
|
||||
"status" : [
|
||||
...状态信息
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 生产数据信令(media::data::produce)
|
||||
@@ -552,12 +622,18 @@
|
||||
"roomId" : "房间标识",
|
||||
"transportId": "通道标识"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID",
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 关闭数据生产者信令(media::data::producer::close)
|
||||
|
||||
关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -565,7 +641,9 @@
|
||||
"consumerId": "数据生产者ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
媒体服务->信令服务->终端
|
||||
信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 查询数据生产者状态信令(media::data::producer::status)
|
||||
@@ -576,8 +654,15 @@
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "数据生产者ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "数据生产者ID",
|
||||
"status" : [
|
||||
...状态信息
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 重启ICE信令(media::ice::restart)
|
||||
@@ -594,7 +679,7 @@
|
||||
"iceParameters": "iceParameters"
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 生产媒体信令(media::produce)
|
||||
@@ -603,16 +688,23 @@
|
||||
# 消息主体
|
||||
{
|
||||
"kind" : "媒体类型",
|
||||
"roomId": "房间标识",
|
||||
"transportId": "通道标识",
|
||||
"roomId" : "房间ID",
|
||||
"transportId" : "通道ID",
|
||||
"rtpParameters": "rtpParameters"
|
||||
}
|
||||
{
|
||||
"kind" : "媒体类型",
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID",
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 关闭生产者信令(media::producer::close)
|
||||
|
||||
关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -620,7 +712,9 @@
|
||||
"consumerId": "生产者ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
媒体服务->信令服务->终端
|
||||
信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 暂停生产者信令(media::producer::pause)
|
||||
@@ -629,7 +723,7 @@
|
||||
# 消息主体
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
"producerId": "消费者ID"
|
||||
"producerId": "生产者ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
@@ -641,7 +735,7 @@
|
||||
# 消息主体
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
"producerId": "消费者ID"
|
||||
"producerId": "生产者ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
@@ -651,9 +745,15 @@
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{}
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
"consumerId": "消费者ID"
|
||||
"score" : {
|
||||
...生产者评分
|
||||
}
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务->终端
|
||||
媒体服务->信令服务+)终端
|
||||
```
|
||||
|
||||
### 查询生产者状态信令(media::producer::status)
|
||||
@@ -664,8 +764,15 @@
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID",
|
||||
"status" : [
|
||||
...状态信息
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 路由RTP协商信令(media::router::rtp::capabilities)
|
||||
@@ -675,28 +782,19 @@
|
||||
{
|
||||
"roomId": "房间标识"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间标识",
|
||||
"rtpCapabilities": {
|
||||
"codec" : "编码解码",
|
||||
"headerExtensions": "扩展"
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 设置路由类型信令(media::set::router::type)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间ID"
|
||||
"routerType": "路由类型"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 关闭通道信令(media::transport::close)
|
||||
|
||||
关闭通过回调实现所以不能同步响应,以下场景出现:主动断开、离开房间、信令断开
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -704,27 +802,38 @@
|
||||
"transportId": "通道ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
媒体服务->信令服务->终端
|
||||
信令服务->媒体服务->信令服务->终端
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
```
|
||||
|
||||
### 创建RTP输入通道信令(media::transport::plain)
|
||||
### 创建RTP输入通道信令(media::transport::plain::create)
|
||||
|
||||
用来接入RTP协议终端
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"rtcpMux": RTP和RTCP端口复用(true|false),
|
||||
"comedia": 自动终端端口(true|false),
|
||||
"enableSctp": 是否开启sctp(true|false),
|
||||
"numSctpStreams": sctp数量,
|
||||
"enableSrtp": 是否开启srtp(true|false),
|
||||
"rtcpMux" : RTP/RTCP端口复用(true|false),
|
||||
"comedia" : 自动识别终端端口(true|false),
|
||||
"enableSctp" : 是否开启SCTP(true|false),
|
||||
"numSctpStreams" : SCTP数量,
|
||||
"enableSrtp" : 是否开启SRTP(true|false),
|
||||
"srtpCryptoSuite": {
|
||||
"cryptoSuite": "算法(AEAD_AES_256_GCM|AEAD_AES_128_GCM|AES_CM_128_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_32)",
|
||||
"keyBase64" : "密钥"
|
||||
}
|
||||
}
|
||||
{
|
||||
roomId : "房间ID",
|
||||
transportId: "通道ID",
|
||||
ip : "RTP监听IP",
|
||||
port : "RTP媒体端口",
|
||||
rtcpPort : "RTP媒体RTCP端口"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 查询通道状态信令(media::transport::status)
|
||||
@@ -735,17 +844,32 @@
|
||||
"roomId" : "房间ID",
|
||||
"transportId": "通道ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"transportId": "通道ID",
|
||||
"status" : [
|
||||
...状态信息
|
||||
]
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 连接WebRTC通道信令(media::transport::webrtc::connect)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"transportId" : "通道ID",
|
||||
"dtlsParameters": "DTLS参数"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"transportId" : "传输通道标识"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 创建WebRTC通道信令(media::transport::webrtc::create)
|
||||
@@ -753,25 +877,35 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间标识"
|
||||
"roomId" : "房间ID",
|
||||
"forceTcp" : "强制使用TCP",
|
||||
"producing" : "是否生产",
|
||||
"consuming" : "是否消费",
|
||||
"sctpCapabilities": "sctpCapabilities"
|
||||
}
|
||||
{
|
||||
"roomId": "房间标识",
|
||||
"transportId": "传输通道标识",
|
||||
"roomId" : "房间ID",
|
||||
"transportId" : "传输通道ID",
|
||||
"iceCandidates" : "iceCandidates",
|
||||
"iceParameters" : "iceParameters",
|
||||
"dtlsParameters": "dtlsParameters",
|
||||
"sctpParameters": "sctpParameters"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务->终端
|
||||
终端=>信令服务->媒体服务
|
||||
```
|
||||
|
||||
### 视频方向变化信令(media::video::orientation::change)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"producerId": "生产者ID",
|
||||
"flip" : "是否翻转",
|
||||
"camera" : "是否摄像头",
|
||||
"rotation" : "旋转角度"
|
||||
}
|
||||
# 数据流向
|
||||
媒体服务->信令服务->终端
|
||||
```
|
||||
@@ -782,7 +916,8 @@
|
||||
# 消息主体
|
||||
{}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
信令服务->终端
|
||||
```
|
||||
|
||||
### 重启平台信令(platform::reboot)
|
||||
@@ -792,6 +927,7 @@
|
||||
{}
|
||||
# 数据流向
|
||||
信令服务+)终端
|
||||
终端=>信令服务
|
||||
终端->信令服务+)终端
|
||||
```
|
||||
|
||||
@@ -806,7 +942,7 @@
|
||||
"result": "结果"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 关闭平台信令(platform::shutdown)
|
||||
@@ -816,6 +952,7 @@
|
||||
{}
|
||||
# 数据流向
|
||||
信令服务+)终端
|
||||
终端=>信令服务
|
||||
终端->信令服务+)终端
|
||||
```
|
||||
|
||||
@@ -852,7 +989,8 @@
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
@@ -860,7 +998,8 @@
|
||||
...
|
||||
]
|
||||
# 数据流向
|
||||
终端=>信令服务->终端
|
||||
终端=>信令服务
|
||||
终端=[进入房间]>信令服务->终端
|
||||
```
|
||||
|
||||
### 房间终端ID信令(room::client::list::id)
|
||||
@@ -874,10 +1013,17 @@
|
||||
"clientId": "终端ID(可选)"
|
||||
}
|
||||
{
|
||||
...
|
||||
"roomId" : "房间ID",
|
||||
"clientId" : "终端ID",
|
||||
"dataProducers" : "数据生产者ID集合",
|
||||
"dataConsumers" : "数据消费者ID集合",
|
||||
"audioProducers": "音频生产者ID集合",
|
||||
"videoProducers": "视频生产者ID集合",
|
||||
"audioConsumers": "音频消费者ID集合",
|
||||
"videoConsumers": "视频消费者ID集合"
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 关闭房间信令(room::close)
|
||||
@@ -888,7 +1034,7 @@
|
||||
"roomId": "房间ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务+)终端
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
```
|
||||
|
||||
### 创建房间信令(room::create)
|
||||
@@ -901,12 +1047,14 @@
|
||||
"mediaClientId": "媒体服务ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID",
|
||||
"name" : "房间名称",
|
||||
"clientSize" : "终端数量",
|
||||
"mediaClientId": "媒体服务ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->媒体服务->信令服务+)终端
|
||||
终端=>信令服务->媒体服务
|
||||
终端->信令服务->媒体服务->信令服务-)终端
|
||||
```
|
||||
|
||||
### 进入房间信令(room::enter)
|
||||
@@ -922,11 +1070,14 @@
|
||||
"clientId": "终端标识"
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务
|
||||
终端->信令服务-)终端
|
||||
```
|
||||
|
||||
### 踢出房间信令(room::expel)
|
||||
|
||||
终端收到信令以后调用离开房间信令离开房间,没有实现强制在服务端提出。
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -939,6 +1090,8 @@
|
||||
|
||||
### 邀请终端信令(room::invite)
|
||||
|
||||
终端收到信令以后调用进入房间信令进入房间
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
@@ -955,6 +1108,10 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间ID"
|
||||
}
|
||||
{
|
||||
"roomId" : "房间ID"
|
||||
"clientId": "离开终端ID"
|
||||
}
|
||||
# 数据流向
|
||||
@@ -966,6 +1123,9 @@
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间ID"
|
||||
}
|
||||
[
|
||||
{
|
||||
"name" : "房间名称",
|
||||
@@ -976,13 +1136,16 @@
|
||||
...
|
||||
]
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 房间状态信令(room::status)
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"roomId": "房间ID"
|
||||
}
|
||||
{
|
||||
"name" : "房间名称",
|
||||
"passowrd" : "房间密码",
|
||||
@@ -990,7 +1153,7 @@
|
||||
"mediaClientId": "媒体服务标识"
|
||||
}
|
||||
# 数据流向
|
||||
终端=>信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 发起会话信令(session::call)
|
||||
@@ -998,12 +1161,16 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"clientId": "接收者ID",
|
||||
"clientId": "目标ID",
|
||||
"audio" : 是否需要声音(true|false),
|
||||
"video" : 是否需要视频(true|false)
|
||||
}
|
||||
{
|
||||
"name" : "终端名称",
|
||||
"clientId" : "终端ID",
|
||||
"sessionId": "会话ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务->终端
|
||||
```
|
||||
|
||||
@@ -1012,9 +1179,10 @@
|
||||
```
|
||||
# 消息主体
|
||||
{
|
||||
"sessionId": "会话ID"
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务+)终端
|
||||
终端->信令服务->终端
|
||||
```
|
||||
|
||||
### 媒体交换信令(session::exchange)
|
||||
@@ -1028,12 +1196,7 @@
|
||||
# 消息主体
|
||||
{
|
||||
"sdp" : "sdp"
|
||||
"type": "offer",
|
||||
"sessionId": "会话ID"
|
||||
}
|
||||
{
|
||||
"sdp": "sdp"
|
||||
"type": "answer",
|
||||
"type" : "offer|answer",
|
||||
"sessionId": "会话ID"
|
||||
}
|
||||
{
|
||||
@@ -1041,7 +1204,7 @@
|
||||
"sessionId": "会话ID",
|
||||
"candidate": {
|
||||
"sdpMid" : "sdpMid",
|
||||
"candidate": "candidate信息",
|
||||
"candidate" : "candidate",
|
||||
"sdpMLineIndex": sdpMLineIndex
|
||||
}
|
||||
}
|
||||
@@ -1097,26 +1260,30 @@
|
||||
"cpuProcessors": CPU核心数量
|
||||
}
|
||||
# 数据流向
|
||||
终端->信令服务->终端
|
||||
终端=>信令服务
|
||||
```
|
||||
|
||||
### 重启系统信令(system::reboot)
|
||||
|
||||
重启系统
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{}
|
||||
# 数据流向
|
||||
信令服务+)终端
|
||||
终端->信令服务+)终端
|
||||
终端=>信令服务+)终端
|
||||
```
|
||||
|
||||
### 关闭系统信令(system::shutdown)
|
||||
|
||||
关闭系统
|
||||
|
||||
```
|
||||
# 消息主体
|
||||
{}
|
||||
# 数据流向
|
||||
信令服务+)终端
|
||||
终端->信令服务+)终端
|
||||
终端=>信令服务+)终端
|
||||
```
|
||||
|
||||
|
||||
@@ -35,7 +35,5 @@
|
||||
* 存在TURN服务优先使用
|
||||
* 安卓关闭视频没有删除预览
|
||||
* 浏览器WebRTC监控页面关闭:`chrome://webrtc-internals/`
|
||||
* me -> this
|
||||
* console -> platformError
|
||||
|
||||
## 完成任务
|
||||
|
||||
@@ -128,46 +128,3 @@ cmake . -B build \
|
||||
make -C build
|
||||
make install -C build
|
||||
```
|
||||
|
||||
## Linux(鸿蒙)
|
||||
|
||||
```
|
||||
# 编译工具
|
||||
mkdir -p /data
|
||||
cd /data
|
||||
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
|
||||
# 下载源码
|
||||
mkdir -p /data/webrtc
|
||||
cd /data/webrtc
|
||||
/data/depot_tools/fetch --nohooks webrtc
|
||||
#/data/depot_tools/gclient sync
|
||||
|
||||
# 切换分支
|
||||
cd src
|
||||
git checkout -b m94 branch-heads/4606
|
||||
/data/depot_tools/gclient sync
|
||||
|
||||
# 编译依赖
|
||||
./build/install-build-deps.sh
|
||||
|
||||
# 鸿蒙工具
|
||||
wget https://repo.huaweicloud.com/openharmony/os/4.0-Release/ohos-sdk-windows_linux-public.tar.gz
|
||||
|
||||
# 编译项目
|
||||
./buildtools/linux64/gn gen out/Release-clang-x64 --args='target_os="linux" target_cpu="x64" is_clang=true is_debug=false use_rtti=true rtc_use_h264=true use_custom_libcxx=true rtc_include_tests=false is_component_build=false treat_warnings_as_errors=false rtc_build_examples=false'
|
||||
./third_party/depot_tools/ninja -C out/Release-clang-x64
|
||||
|
||||
./buildtools/linux64/gn gen out/Release-clang-x86 --args='target_os="linux" target_cpu="x86" is_clang=true is_debug=false use_rtti=true rtc_use_h264=true use_custom_libcxx=true rtc_include_tests=false is_component_build=false treat_warnings_as_errors=false rtc_build_examples=false'
|
||||
./third_party/depot_tools/ninja -C out/Release-clang-x86
|
||||
|
||||
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm
|
||||
./buildtools/linux64/gn gen out/Release-clang-arm --args='target_os="linux" target_cpu="arm" is_clang=true is_debug=false use_rtti=true rtc_use_h264=true use_custom_libcxx=true rtc_include_tests=false is_component_build=false treat_warnings_as_errors=false rtc_build_examples=false'
|
||||
./third_party/depot_tools/ninja -C out/Release-clang-arm
|
||||
|
||||
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
|
||||
./buildtools/linux64/gn gen out/Release-clang-arm64 --args='target_os="linux" target_cpu="arm64" is_clang=true is_debug=false use_rtti=true rtc_use_h264=true use_custom_libcxx=true rtc_include_tests=false is_component_build=false treat_warnings_as_errors=false rtc_build_examples=false'
|
||||
./third_party/depot_tools/ninja -C out/Release-clang-arm64
|
||||
```
|
||||
|
||||
* https://github.com/webrtc-sdk/webrtc-build/blob/main/docs/build.md
|
||||
|
||||
Reference in New Issue
Block a user