全国服务热线:18620492547   18680535060   18680234060
    

战狼网络

关于代理商模板

超值服务提供卓越产品

   
  
  
新闻公告 News
   
最近大火的直播答题系统在技术上难实现吗?挑战有多大?
来源:战狼网络 | 作者:zwolftech | 发布时间: 2018-09-25 | 42 | 分享到:

最近大火的直播答题系统在技术上难实现吗?挑战有多大?

直播答题已经是风口,毋容置疑。对攻城狮们来说,2018 年春节是个坎,直播答题技术做细致做到位了,才能安心过个好年。
为了应对这个挑战,我们首先分析一下直播答题和传统直播在技术上的不同,然后深度解释一下直播答题解决方案的海量并发派题和收题。
首先,我们看一下直播答题的业务流程:
主持人发出派题指令;
题目信息通过实时通信网络和实时分发网络送达给用户;
VIP 用户从实时通信网络拉取题目信息;
普通用户从实时分发网络拉取题目信息;
如题目信息包含完整内容,则下一步,如果只有题目 ID,则到业务服务器查询题目内容;
用户把题目答案提交给答题统计分析服务器,同时得到标准答案反馈;答题统计分析服务器是分布式的集群,统计答题结果,反馈给主持人;
然后,我们看看各个网络服务实体的分工:


实时通信网络:为实时传输而设计的网络,能实时传输海量数据,不只是语音视频。它比实时分发网络(比如 CDN)的延迟更低,具有动态回源和对抗弱网等特点。
实时分发网络:为实时分发海量内容而设计的网络,优点是能支撑海量并发,成本相对也比较低,缺点是延迟相对于实时通信网络要高一些。
答题统计服务:为统计用户提交的题目答案而在视频直播架构外设计的服务,能反馈标准答案,并且统计所有题目答案,最后反馈给主持人。该服务要能承受海量并发压力。
业务服务器:如果派题信息包含完整题目内容,用户不需要再查询题目内容;如果派题信息只有题目 ID, 那么用户要到业务服务器查询题目内容。该服务也要承受海量并发压力。
最后,我们再分析直播答题中的关键环节:
1. 海量并发派题
派题的指令必须是主持人端发出,然后服务器会担负起启动向海量用户群发题目的任务。题目是优先级最高的消息,不能像处理 IM 消息那样采取低优先级消息抛弃,或者用户分桶等应对海量并发的策略,必须要确保消息内容实时到达每个用户的终端,这是实打实的实时海量并发。另外,如果由服务器单点在毫秒级别时间内复制群发 N 份消息,那么单点就要承受巨大的压力,这明显是不可能的。那么海量并发派题要依仗内容分发网络的能力。内容分发可以通过实时低延迟网络或者 CDN 来完成,考虑到 CDN 有成本的优势,因此 VIP 用户的派题由实时网络完成,其它用户的派题要由 CDN 来完成。
2. 海量并发收题
收题的环节由用户触发,每个用户答题的时间窗口不尽相同,因此每个用户提交题目的时间有秒级的差别。然而,海量用户在数秒之内提交答案,题目答案属于重要消息,不能做抛弃处理,服务器的压力也是巨大的。为了减少服务器压力,用户的答题将会被就近提交到边缘节点并且获得正确答案反馈,整体的答题统计结果将会由分布式的服务器集群来完成,最后传达到主持人端,使得主持人可以近乎实时地宣布统计的结果。
3. 视频和答题同步
视频直播要低延迟,题目派送同样也要低延迟,而且要和视频画面同步。通过 IM 的能力来派题是很难做到视频和派题同步的,因为语音视频传输通道和 IM 的通道是相互独立的。一般的做法是通过实时语音视频的扩展数据通道来附带传输题目信息,让视频和题目天然就同步。考虑到网络抖动和丢包等网络损伤的情况,在答题时间窗口内,要适当发送题目的冗余 copy,然后用户端做排重,避免题目信息丢失而导致用户收不到题目。
通过实时语音视频传输通道来派题的技术手段其实并不新鲜。在视频直播的 K 歌场景中,主播 K 歌要尽量还原线下的体验 -- 主播的歌声、画面还有歌词必须要同步在用户端显示。歌词信息在主播端打点,通过实时语音视频传输通道同步传输给用户端。


另外,还可以为主持人的背景增加特效,甚至 AR 效果。主持人要在绿幕背景前进行节目主持。在采集和编码之间的前处理环节,开发者获得原始视频数据,把绿色的画面部分去除,把主持人的画像扣出来,补充上动画或者 AR 等特效处理后,再把视频数据塞给编码环节。使用第三方视频直播 SDK 的话,那么该视频直播 SDK 必须要开放前处理接口,开发者才能获得原始视频数据,否则开发者没办法通过前处理的方式在视频画面增加特效。比如说,支持 WebRTC 的浏览器没有开放前处理接口,那么基于 WebRTC 的视频直播方案在浏览器端就不支持在视频画面上增加特效。
4. 题目内容安全性
直播答题悬赏巨额奖金,各种黑产活跃到其中,题目内容的安全性十分重要。题目内容缓存在用户终端是万万不可的,必须实时地送达用户终端,否则黑产从用户终端可以提前获得题目内容。
针对题目派送的方式,目前市面上有两种第三方直播答题方案:第一种方案,技术方案通过实时语音视频通道派送题目的全部内容,该方案的优势是完全负责了派题的安全性和并发压力,开发者不需要投入开发成本。第二种方案,技术方案通过实时语音视频通道只派送题目 ID,用户终端获得题目 ID 后,到开发者的业务服务器查询题目内容。该方案的优势是开发者完全把控题目内容的私密性。
以即构 ZEGO 的直播答题方案为例,如果题目内容小于 1000 字节,也就是 500 个中文字符,可以通过实时语音视频通道传输所有题目内容;如果超过 1000 字节,通过实时语音视频信道传输题目 ID, 然后由用户终端以题目 ID 从就近服务器拉取题目内容。
如果第三方直播答题方案只派送题目 ID,开发者可以把题目内容缓存在就近服务器,通过题目 ID 获取题目内容,增加的延迟很小,不会影响用户体验。然而,开发者要承担查询题目的海量并发压力,还要实现题目内容的安全保护机制,比如说拉取题目要鉴权,题目传输要加密,和题目时效窗口的控制等,开发成本也就水涨船高。