ZEGO 为开发者提供GO课堂服务源代码,开发者可以直接部署也能够根据自己的需求定制开发。现已支持教室,教师,学生状态管理以及状态变更的通知。
ZEGO 不提供GO课堂后台运营服务,开放GO课堂服务源代码,开发者需要自已下载源码搭建后台系统。
具体功能包括:
可以通过修改 app.conf
配置文件,来配置每个教室可以容纳的人数以及同时连麦的人数。
通过直接部署后台服务,并配合 Express SDK、ZegoWhiteBoardView SDK、ZegoDocsView SDK 快速搭建在线互动教学场景。
GO课堂服务是采用 Go 语言,基于开源的 HTTP 框架 beego 开发出来的一款后端服务应用。目前版本仅依赖 redis
来存储数据,支持水平扩展,开发者可以根据需要进行扩容。
部署 redis,GO课堂的教室、教师、学生的状态会存储于 redis。
修改 app.conf
配置文件中如下配置项,配置好 redis,以及 AppId、AppSecret。
RedisAddr = "192.168.100.62:6379" # redis host
RedisPassword = "" # redis password
RedisIndex = 8 # redis数据库
[SmallClass] # 小班课appid相关配置
AppId = 1234567890
AppSecret = "eb2280544902dc1b7ab1fde3985bd083" # 从 zego 控制台获取的 ServerSecret
[LargeClass] # 大班课appid相关配置
AppId = 1234567890
AppSecret = "eb2280544902dc1b7ab1fde3985bd083" # 从 zego 控制台获取的 ServerSecret
cd edu_room
./edu_room_linux # linux系统
./edu_room_mac # mac os
edu_room.exe # win
或者安装 Go 开发环境,然后执行如下命令:
cd edu_room;go run main.go
调用 login_room 接口登录教室,会自动初始化教室,如果输入了相同的 room_id
则会进入同一教室。客户端需保证 uid
唯一性,相同的 uid
后端会认为是同一个用户。
{
"uid":171171717,
"room_id":"123456",
"nick_name":"Shawn",
"role":2,
"room_type":2
}
登录房间成功后返回教室的默认状态和配置项,以及用户的状态信息,客户端需要根据这些信息初始化房间和用户状态。
{
"ret": {
"code": 0,
"message": "succeed"
},
"data": {
"max_join_live_num": 4,
"room_id": "123456",
"default_camera_state": 2,
"default_mic_state": 2,
"allow_turn_on_camera": 2,
"allow_turn_on_mic": 2,
"uid": 171171717,
"nick_name": "Shawn",
"role": 1,
"login_time": 1600920322511,
"camera": 1,
"mic": 1,
"can_share": 2
}
}
上课过程中,教师和学生通过以下接口实现管理设备状态、中途离开教室、结束教学等功能。
调用 set_user_info 接口可以修改自己的设备、共享状态,教师也可以通过此接口修改学生的设备、共享状态。
{
"uid":171171717,
"room_id":"123456",
"room_type": 2,
"target_uid":171171717,
"mic":2,
"camera":2,
"can_share":2
}
调用 leave_room 接口可以离开教室,用户状态信息会被删除,当所有人都离开教室一段时间后,教室会自动销毁。
{
"uid":171171717,
"room_id":"123456",
"room_type": 2
}
调用 end_teaching 接口可以结束教学,将教室内所有用户踢出教室,然后立即销毁教室。
{
"uid":171171717,
"room_id":"123456",
"room_type": 2
}
联系我们
文档反馈