一、需求:直播中互动答题
1.客户端直播答题技术方案,使用socket长连接来收发题和答案;
二、技术难点:
1.答题与视频同步
通过视频追时延技术实现不同设备播放视频的同步;
2.即时准确地收题和发送答案
3.防止丢包
三、长连接实现
1.心跳机制
心跳是为了保持连接,每60s给服务端发送一次心跳,心跳内容及格式由服务端制定;
2.重连机制
连接过程中因为网络等某些因素导致长连接断开,就要进行重连,我们制定的是每n+1秒之后进行重连,n是长连接断开的次数。
3.丢包处理的反馈机制
测试中发现,长连接收发消息丢包是存在的,服务端推题,客户端一些时候无法收到消息。为了解决这个问题,我们加入了反馈机制。客户端收到消息后,会把相应的信息(这个题目的信息)反馈给服务端。隔相应时间后,服务端会给未收到反馈的设备重复发送题目信息,由此优化了此问题。
4.判重机制
丢包反馈也会出现一个问题,就是反馈还未到达服务端的时候,服务器又重新发送了题目,导致客户端重复收到同一道题,这就需要客户端添加判断处理,包括题目或答案页面判重显示问题。
5.断线重连逻辑处理
第一道题,答题时间10s,在答题过程中,长连接由于某种原因断开了,或者退出重进,要有重复发题的方案;