事件推送(已废弃)
将老师与学生在上课中系统层面发生的事件进行实时推送到机构,用于报警监控等。
本章接口列表:
数目 | 类接口名称 | 接口说明 |
---|---|---|
1 | 事件推送接收接口 | 实时推送课中卡顿、延迟、关键事件通过接口形式推送到机构端,机构端通过该接口可实时分析当前课堂上课质量。 |
约定
使用 HTTP 或 HTTPS 协议,如不使用协议默认端口(80/443)请告知我方具体的端口。 接口接收推送消息的格式为 JSON
事件推送接收接口
路由:http://example.com/stream/notice(其他路由命名亦可此处只是用于示例)
方法:POST
参数:通过 body 传递,格式为 JSON,详细说明如下:
网络延迟(netDelay)
推送规则: 网络平均延迟 > 指定阈值
建议阈值: 300 ms
平均网络延迟消息:
{
"event": "netDelay", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "teacher", // 用户类型:teacher 老师 | student 学生
"dtype": "avg", // 延迟类型:avg 平均延迟| max 最大延迟
"delay": "301", // 延迟(单位:ms)
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
推送规则: 网络最大延迟 > 指定阈值
建议阈值: 500 ms
最大网络延迟消息:
{
"event": "netDelay", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "teacher", // 用户类型:teacher 老师 | student 学生
"dtype": "max", // 延迟类型:avg 平均延迟| max 最大延迟
"delay": "501", // 延迟(单位:ms)
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
音视频丢包(packetLoss)
推送规则: 音频丢包率 > 指定阈值
建议阈值: 10%
视频丢包消息:
{
"event": "packetLoss", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "video", // 类型:audio 音频 | video 视频 | all 音视频
"lostrate": "11", // 丢包率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
推送规则: 音频丢包率 > 指定阈值
建议阈值: 10%
音视丢包消息:
{
"event": "packetLoss", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "audio", // 类型:audio 音频 | video 视频 | all 音视频
"lostrate": "11", // 丢包率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
推送规则: 音视频丢包率 > 指定阈值
建议阈值: 10%
音视频丢包消息:
{
"event": "packetLoss", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "teacher", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "all", // 类型:audio 音频 | video 视频 | all 音视频
"lostrate": "11", // 丢包率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
音视频低码率(lowBitrate)
推送规则: 音频帧率 < 指定阈值
建议阈值: 5fps
音频低帧率:
{
"event": "lowFrameRate", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "all", // 类型:audio 音频 | video 视频 | all 音视频
"fps": "5", // 帧率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
推送规则: 视频帧率 < 指定阈值
建议阈值: 5fps
音频低帧率:
{
"event": "lowFrameRate", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "video", // 类型:audio 音频 | video 视频 | all 音视频
"fps": "5", // 帧率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
推送规则: 音视频帧率 < 指定阈值
建议阈值: 5fps
音视频低帧率:
{
"event": "lowFrameRate", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "teacher", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"is_push": 1, // 推拉流方式: 1 推流,即上行 | 0 拉流,即下行
"type": "all", // 类型:audio 音频 | video 视频 | all 音视频
"fps": "5", // 帧率
"log_time": 1590301020, // 日志时间
"ctime": 1590301020 // 推送发送时间
}
音视频卡顿(slowBuffer)
推送规则: 音视频卡顿 > 指定阈值
建议阈值: 300ms
音视频低帧率:
{
"event": "slowBuffer", // 事件类型
"lid": "12304999_545", // 课节ID
"uid": "238912", // 用户ID
"utype": "student", // 用户类型:teacher 老师 | student 学生 | 空字符 未知类型
"duration": "400", // 持续时间,单位:毫秒
"log_time": 1590301020, // 日志时间,topic 中的 nginxtime
"ctime": 1590301020 // 推送发送时间
}
接口返回值:
HTTP状态码 | 消息体 |
---|---|
200(表示成功) | 不关注 |
其他状态码表示失败 | { "error": "not found", // 简要的错误描述 "detail": "详细的错误描述" // 详细的错误描述 } |