一、需求:直播中互動答題
1.客戶端直播答題技術方案,使用socket長連接來收發(fā)題和答案;
二、技術難點:
1.答題與視頻同步
通過視頻追時延技術實現(xiàn)不同設備播放視頻的同步;
2.即時準確地收題和發(fā)送答案
3.防止丟包
三、長連接實現(xiàn)
1.心跳機制
心跳是為了保持連接,每60s給服務端發(fā)送一次心跳,心跳內(nèi)容及格式由服務端制定;
2.重連機制
連接過程中因為網(wǎng)絡等某些因素導致長連接斷開,就要進行重連,我們制定的是每n+1秒之后進行重連,n是長連接斷開的次數(shù)。
3.丟包處理的反饋機制
測試中發(fā)現(xiàn),長連接收發(fā)消息丟包是存在的,服務端推題,客戶端一些時候無法收到消息。為了解決這個問題,我們加入了反饋機制??蛻舳耸盏较⒑?,會把相應的信息(這個題目的信息)反饋給服務端。隔相應時間后,服務端會給未收到反饋的設備重復發(fā)送題目信息,由此優(yōu)化了此問題。
4.判重機制
丟包反饋也會出現(xiàn)一個問題,就是反饋還未到達服務端的時候,服務器又重新發(fā)送了題目,導致客戶端重復收到同一道題,這就需要客戶端添加判斷處理,包括題目或答案頁面判重顯示問題。
5.斷線重連邏輯處理
第一道題,答題時間10s,在答題過程中,長連接由于某種原因斷開了,或者退出重進,要有重復發(fā)題的方案;