即构直播答题系统架构图如下所示:
即构直播答题系统流程图如下所示:
上图中的 JSON 格式说明详见第 3 节。
请注意:
开发者必须使用即构的服务模块为:流媒体服务器、信令统计服务器。
开发者必须自行开发的模块为:观众端(通常是 Android、iOS 移动端)。即构提供了演示 Demo 供开发者参考。
开发者可自行开发、也可直接使用的即构服务模块有:主播端、业务服务器。建议业务方直接使用即构提供的主播端(包含推流、发题、汇总等功能的 Windows 端软件)。
如果开发者自行实现业务服务器,需要与即构的信令统计服务器对接。信令统计服务器提供了公开 API。详见文档:统计服务后台接口说明
如果开发者使用即构提供的业务服务器,需要调用业务服务器的公开 API。不按照预定规则调用,会导致错误。详见文档:业务服务后台接口说明
主播端从本地导入题库,题目的 JSON 格式为:
主要字段说明为:
参数名 |
类型 |
说明 |
|
activity_id |
String |
活动 id,答题场次(活动)的唯一标识;由客户保证唯一性;一个答题场次有多个题目;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
total_bonus |
Int |
总奖金数额 |
send_question |
Int |
点击“发送题目”,到可点击同一道题的“发送统计”的间隔时间 |
send_statistic |
Int |
点击“发送统计”,到可点击下一道题的“发送题目”的间隔时间 |
get_stt_url |
String |
获取每道题统计信息的后台接口 |
get_users_url |
String |
获取用户列表的后台接口 |
question_list |
Array |
题目列表 |
correct_answer |
String |
某到题目的正确答案 |
id |
String |
题目 id;题目的唯一标识,由客户保证唯一性;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
index |
Int |
题目序号;第 n 题序号为 n |
title |
Int |
题目标题;可与 index 配合展示为题目描述 |
options |
Array |
题目选项列表 |
answer |
String |
某一选项的序号 |
option |
String |
某一选项的描述 |
APPID |
String |
请联系Zego技术支持获取 |
主播端向观众端发送题目的 JSON 格式为:
请注意,观众端开发请务必按照此格式解析题目。
参数说明为:
参数名 |
类型 |
说明 |
seq |
Int |
协议序列号,一轮活动内递增 |
type |
String |
消息类型;可用类型为:question(题目),answer(答案),sum(用户列表汇总) |
id |
String |
题目 id;题目的唯一标识,由客户保证唯一性;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
index |
Int |
题目序号;第 n 题序号为 n |
activity_id |
String |
活动 id,答题场次(活动)的唯一标识;由客户保证唯一性;一个答题场次有多个题目;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
title |
String |
题目标题;可与 index 配合展示为题目描述 |
options |
Array |
题目选项列表 |
answer |
String |
某一选项的序号 |
option |
String |
某一选项的描述 |
观众端答题需要按照如下 JSON 格式构造答题结果。相关的功能实现请参考:观众端功能实现说明
参数说明为:
参数名 |
类型 |
说明 |
activity_id |
String |
活动 id,答题场次(活动)的唯一标识;由客户保证唯一性;一个答题场次有多个题目;最大 64 bytes(包括字符串结束符),不能包含字符 ',';观众端从主播端获取活动 id |
question_id |
String |
题目 id;题目的唯一标识,由客户保证唯一性;最大 64 bytes(包括字符串结束符),不能包含字符 ',';观众端从主播端获取题目 id |
answer |
String |
观众答题,要与主播下发题目中的 answer 字段值(例如 "A")保持一致 |
user_data |
String |
用户自定义数据。开发者上传 user_data 后可调用拉取流水信息接口获取。该数据可以用于进行消息一致性、完整性校验。 |
观众答题后,主播端会按照如下 JSON 格式,发送题目答案、每道题所有选项对应的统计人数给观众端。
参数说明为:
参数名 |
类型 |
说明 |
seq |
Int |
协议序列号,一轮活动内递增 |
type |
String |
消息类型;可用类型为:question(题目),answer(答案),sum(用户列表汇总) |
id |
String |
题目 id;题目的唯一标识,由客户保证唯一性;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
correct_answer |
String |
某道题目的正确答案 |
activity_id |
String |
活动 id,答题场次(活动)的唯一标识;由客户保证唯一性;一个答题场次有多个题目;最大 64 bytes(包括字符串结束符),不能包含字符 ',' |
answer_stat |
Array |
结果统计列表 |
answer |
String |
某一选项的序号 |
user_count |
String |
选择了该选项的用户总人数 |
所有题目答题完毕,主播端或需要发送最终胜利的用户列表给观众端,用户列表的 JSON 格式为:
参数说明为:
参数名 |
类型 |
说明 |
seq |
Int |
协议序列号,一轮活动内递增 |
type |
String |
消息类型;可用类型为:question(题目),answer(答案),sum(用户列表汇总) |
room_id |
String |
房间 id;房间的唯一标识 |
activity_id |
String |
活动 id,答题场次(活动)的唯一标识;由客户保证唯一性;一个答题场次有多个题目;
|