课节内实时推送的消息
课节内(即上课过程中)实时推送的消息,包括:举手,奖励,摄像头位置,授权,进入教室,退出教室,踢出,全体静音,个人静音,答题器,抢答器,上下台,教室内IM文字聊天,教室内IM图片聊天,课节网络状态报告(每隔5分钟发送一次,为5分钟内的汇总信息),教室内设备检测报告,教室内老师和学生求助,延长课节时长,直播页面用户登录,启动录课详情。
这些数据将会在上课过程中实时推送。
举手
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67375105 |
Color |
String |
hands up+用户ID |
Handsup |
Boolean |
True表示举手状态,False表示放手状态 |
奖励
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67375105 |
Color |
String |
award + 用户ID |
Times |
Int32 |
奖励次数 |
摄像头位置
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67375105 |
Color |
String |
webcamPosition + 用户ID |
Area |
Struct |
摄像头区域 |
└ X1 |
Int32 |
左上角X坐标 |
└ Y1 |
Int32 |
左上角Y坐标 |
L X2 |
Int32 |
右下角X坐标 |
L Y2 |
Int32 |
右下角Y坐标 |
OnTop |
Bool |
是否在坐席区,0:不在坐席区;1:在坐席区 |
Channel |
Int32 |
摄像头序号,0:主摄像头;1:辅摄像头 |
授权
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67371520 |
Operation |
Boolean |
True为授权,False为取消授权 |
进入教室字段
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67371107 |
NickName |
String |
用户昵称 |
AllowEnterTime |
Int32 |
用户被踢出后,允许再次进入时间 |
UID |
Int32 |
用户ID |
LoginMobile |
String |
手机号 |
Identity |
Int32 |
用户身份 1:学生,2:旁听,3:老师,4:助教 |
Device |
Int32 |
登陆客户端类型,0x00:PC,0x01:iphone,0x02:ipad,0x03:web客户端,0x04:Android手机,0x05:Android平板,0x06:Android电视 |
退出教室字段
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67371111 |
UID |
Int32 |
用户ID |
Identity |
Int32 |
用户身份 |
Reason |
Int32 |
退出原因,0:未知异常,1:正常退出,2:教室关闭,3:异常退出,4:被踢出教室,5:服务关闭,6:断线,7:取消排课,8:用户角色变更 |
踢出
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67371523 |
Duration |
Int32 |
踢出维持时间 |
TargetUID |
Int32 |
被踢出ID |
Operation |
Int32 |
1 被踢出 |
静音
字段 |
类型 |
说明 |
Cmd |
Int32 |
单独静音为67371522,全部静音为67371586 |
TargetUID |
Int32 |
静音对象ID |
Operation |
Int32 |
1静音,0取消静音 |
答题器
字段 |
类型 |
说明 |
Area |
Struct |
窗口坐标 |
└ X1,Y1,X2,Y2 |
Int32 |
无 |
Color |
String |
发题时为‘standaloneSelectorToolglobalData’,学生答题时为‘standaloneSelectorTool’ + 学生ID |
Cmd |
Int32 |
命令字67375105 |
QSentTime |
Int32 |
发放时间 |
CurState |
Int32 |
当前答题状态 0:开始状态,1:发题状态,2:收题状态 |
QCollectTime |
Int32 |
收题时间 |
CorrectItems |
String |
正确答案 |
Commited |
Int32 |
学生答题状态 0:开始状态,1:答题状态,2:提交 |
SelectedItem |
String |
学生选择的答案 |
AllItems |
String |
所有备选答案 |
Participants |
Struct |
参与答题人 |
└ ShowName |
String |
答题人昵称 |
└ Uid |
Int32 |
答题人ID |
L Identity |
Int32 |
答题人身份 |
RecvQuestionTime |
Int32 |
学生收到试题时间 |
LastCommitTime |
Int32 |
学生提交答案时间 |
抢答器
字段 |
类型 |
说明 |
Area |
Struct |
窗口坐标 |
└ X1,Y1,X2,Y2 |
Int32 |
无 |
Color |
String |
发题消息为standaloneResponderToolglobalData,学生抢答消息为standaloneResponderTool+UID |
Cmd |
Int32 |
命令字67375105 |
RandomTopLeft |
Struct |
随机位置坐标 |
└ X,Y |
Int32 |
无 |
Participants |
Struct |
参与抢答者 |
└ ShowName |
String |
答题人昵称 |
└ Uid |
Int32 |
答题人ID |
L Identity |
Int32 |
答题人身份 |
EndTime |
Int32 |
抢答结束时间 |
CurState |
Int32 |
当前状态,0:起始状态,1:开始抢答,2:学生抢答,3:抢答后等待,4:结束 |
nId |
Int32 |
最快抢答者ID |
FastestGuyTime |
Int32 |
最快抢答时间 |
FastestGuyName |
String |
最快抢答者 |
上下台
字段 |
类型 |
说明 |
Cmd |
Int32 |
命令字67371521 |
Operation |
Int32 |
0为下台,1为上台 |
教室内IM文字聊天
用户在教室内的IM文字和表情聊天信息。
字段 |
类型 |
说明 |
Cmd |
String |
命令字InMesText |
Type |
Int32 |
发言数据类型:0 |
Content |
String |
发言字符串 |
教室内IM图片聊天
用户在教室内的IM图片聊天信息。
字段 |
类型 |
说明 |
Cmd |
String |
命令字InMesImg |
Type |
Int32 |
发言数据类型:1 |
Content |
String |
压缩后的图片数据base64转码 |
EmoteType |
Int32 |
表示图片类型:1-bmp, 2-jpg, 3-gif |
解压图片发言python实例
import zlib
import base64
imageData = base64.b64decode(data['Content'])
imageData = zlib.decompress(imageData)
with open('image.jpg', "wb") as f:
f.write(imageData)
课节网络状态报告
课节实时网络与CPU占用率状态反馈,每5分钟发送一次,为5分钟内的汇总
参数名 |
类型 |
说明 |
Cmd |
String |
类型为字符串,'Net' |
Data |
对象 |
状态统计 |
└ poor |
整数 |
网络状态很差次数 |
└ bad |
整数 |
网络状态较差次数 |
└ normal |
整数 |
网络状态正常次数 |
└ good |
整数 |
网络状态较好次数 |
└ total |
整数 |
统计总次数 |
└ cpuLow |
整数 |
CPU占用率百分比在[0, 50)之间的次数 |
└ cpuMedium |
整数 |
CPU占用率百分比在[50, 70)之间的次数 |
└ cpuHigh |
整数 |
CPU占用率百分比在[70, 90)之间的次数 |
└ cpuBusy |
整数 |
CPU占用率百分比在[90, 100]之间的次数 |
└ cpuTotal |
整数 |
统计总次数 |
└ localIP |
String |
用户IP(最后一位隐藏) |
实例
{
"ClassID": 290274,
"ActionTime": 1521547386,
"UID": 1001920,
"CourseID": 122982,
"TimeStamp": 1521547387,
"Cmd": "Net",
"_id": "5ab0f87aa3251e6e49b9e892",
"SID": 1001920,
"Data": {
"poor": 0,
"bad": 0,
"total": 331,
"good": 331,
"normal": 0,
"cpuLow": 0,
"cpuMedium": 10,
"cpuHigh": 31,
"cpuBusy": 3,
"cpuTotal": 44,
"localIP": "1.2.3.*"
}
}
教室内设备检测报告
参数名 |
类型 |
说明 |
Cmd |
String |
类型为字符串,'Check' |
Data |
对象 |
设备检测结果详细 |
└ OperatingSystem |
string |
操作系统 |
└ CPU |
string |
用户 CPU |
└ NetworkDelay |
string |
网络延迟 |
└ FrameLoss |
string |
丢包率 |
└ MicrophoneArbitrary |
number |
麦克风状态,1为已安装,2为disable或不存在 |
└ HeadphoneArbitrary |
number |
耳机状态,1为已安装,2为disable或不存在 |
└ CameraArbitrary |
number |
摄像头状态,1为已安装,2为disable或不存在 |
└ EEO_VIDEO_DEVICE_NAME |
string |
选用摄像头设备名称 |
└ EEO_AUDIO_DEVICE_NAME |
string |
选用麦克风设备名称 |
└ EEO_AUDIO_OUTPUT_NAME |
string |
选用耳机设备名称 |
└ EEO_DEVICE_LIST |
对象 |
硬件列表 |
└ camera |
array |
所有摄像头设备名称列表 |
└ micphone |
array |
所有麦克风设备名称列表 |
└ speaker |
array |
所有扬声器设备名称列表 |
└ MicrophoneImpersonal |
number |
程序检测的麦克风状态(1正常,2不正常或未收到声音数据),移动端此字段无效 |
└ CameraImpersonal |
number |
程序检测的摄像头状态(1正常,2不正常或未收到摄像头数据),移动端此字段无效 |
└ HeadphoneImpersonal |
number |
无法对此设备进行程序检测,移动端此字段无效 |
└ MicrophoneAttachment |
string |
麦克风附件 |
└ HeadphoneAttachment |
string |
耳机附件 (暂时为空) |
└ CameraAttachment |
string |
摄像头附件 |
└ ClassInVersion |
string |
客户端版本 |
└ Mac |
string |
MAC 地址 |
└ addTime |
string |
自检时间(时间戳) |
└ InfoSource |
number |
上传自检时机:1,设备初始化;2,设备选择,3,自检完成;4,设备插拔;5,设置完成;7,自检中断; |
└ DeviceType |
number |
设备类别:0,未知;1,Windows;2,iPhone;3,iPad;4,Android Phone;5,Android Pad;6,Mac; |
└ ClientIP |
string |
用户IP(最后一位隐藏) |
实例
{
"ClassID": 290274,
"ActionTime": 1521547218,
"UID": 1001920,
"CourseID": 122982,
"TimeStamp": 1521547219,
"Cmd": "Check",
"_id": "5ab0f7d2a3251e6e49b9e88b",
"SID": 1001920,
"SafeKey": "7e0a589d8fd68a82a523ac86c95c9d1d",
"Data": {
"MicrophoneArbitrary": null,
"ClassInVersion": "2.1.1.60",
"EEO_AUDIO_OUTPUT_NAME": "\u626c\u58f0\u5668 (Realtek High Definition Au",
"FrameLoss": "",
"EEO_AUDIO_DEVICE_NAME": "\u9ea6\u514b\u98ce (HD Webcam C270)",
"CameraImpersonal": 0,
"addTime": 1521547218,
"CPU": "Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz",
"OperatingSystem": "Windows 10 (1709)",
"Mac": "00:15:5D:33:74:C4",
"CameraArbitrary": null,
"EEO_VIDEO_DEVICE_NAME": "Logitech HD Webcam C270",
"ServerName": "EEO-A0134 (Auto)",
"HeadphoneAttachment": "",
"ClientIP": "10.0.1.*",
"MicrophoneAttachment": "https://root_url/upload/autocheck/",
"EEO_DEVICE_LIST": "{\"camera\": [\"Logitech HD Webcam C270\"], \"micphone\": [\"HD Webcam C270\"], \"speaker\": [\"LG HDR 4K\"]}",
"MicrophoneImpersonal": 0,
"CameraAttachment": "",
"HeadphoneArbitrary": null,
"InfoSource": 3,
"NetworkDelay": ""
}
}
教室内老师和学生求助
上课过程中,老师端和学生端(学生端的求助,需要在机构管理后台的 教室配置 里勾选 学生求助设置),都能够向sdk管理后台发起求助信息
参数名 |
类型 |
说明 |
Cmd |
String |
'HelpInfo' |
ClassID |
整数 |
求助课节ID |
Data |
对象 |
求助内容 |
└ UID |
整数 |
发起求助用户ID |
└ Message |
string |
求助信息 |
└ UserList |
整数数组 |
求助所包含的用户ID |
实例
{
"SID": 1000958,
"ClassID": 301417,
"Data": {
"UID": 1001558,
"Message": "Speaker is abnormal. The user can't hear sound",
"UserList": [1001558, 123456]
},
"Cmd": "HelpInfo"
}
延长课节时长
课节结束前 8 - 3 分钟内,如果老师延长课节时长,将收到此推送消息。
注:只有当机构的 教室设置 勾选了课堂延时设置(允许教师延长课节时长),老师才能延长课节时长。
参数名 |
类型 |
说明 |
Cmd |
String |
'ClassLen' |
StartTime |
Int32 |
课节开始时间,unix时间戳 |
PrelectTimeLength |
Int32 |
新课节时长,单位秒 |
CloseClassDelay |
Int32 |
拖堂延时,单位秒 |
实例
{
"SID": 1000958,
"StartTime": 1568862650,
"PrelectTimeLength": 1200,
"CloseClassDelay": 1200,
"Cmd": "ClassLen"
}
直播页面用户登录
参数名 |
类型 |
说明 |
Cmd |
String |
'LiveWebLogin' |
ClassID |
整数 |
直播课节ID |
Data |
对象 |
内容 |
└ Telephone |
String |
登录用户电话号 |
└ LoginTime |
整数 |
Unix时间戳 |
└ Nickname |
String |
登录用户昵称 |
实例
{
"SID": 1000958,
"ClassID": 301417,
"Data": {
"Telephone": "10015584345",
"LoginTime": 1521547219,
"Nickname": "XiaoMing"
},
"Cmd": "LiveWebLogin"
}
启动录课详情
录课模式等信息,每次录课启动时推送
参数名 |
类型 |
说明 |
Cmd |
String |
类型为字符串,'LiveDetail' |
Data |
对象 |
录课详细信息 |
└ Audio mode |
字符串 |
录制声音模式:软件声音为'ClassIn Audio',系统声音为'System Audio' |
└ HighBitRate |
字符串 |
录制码率:高码率'High',普通码率为'Standard' |
└ IP |
字符串 |
推流IP:可能为域名'livepush.eeo.cn'或具体IP地址 |
└ Micphone is recorded |
字符串 |
是否录麦克风的声音: 'Yes'或'No' |
└ Video Scope |
字符串 |
录制目标为桌面'Desktop'或教室窗口'Classroom' |
└ Video Size |
字符串 |
录制大小:高清'HD(1280*720)'或'FHD(1920*1080)' |
实例
{
"SID": 1001920,
"Data": {
"Audio mode": "ClassIn Audio",
"HighBitRate": "Standard",
"IP": "livepush.eeo.cn",
"Micphone is recorded": "Yes",
"Video Scope": "Desktop",
"Video Size": "HD(1280*720)"
},
"ClassID": 392429,
"Cmd": "LiveDetail"
}