本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)控制領(lǐng)域,具體涉及一種基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲方法及系統(tǒng)。
背景技術(shù):
隨著通信技術(shù)的發(fā)展,網(wǎng)絡(luò)直播間已經(jīng)廣泛應(yīng)用于人們的日常生活之中。用戶進(jìn)入網(wǎng)絡(luò)直播間觀看直播內(nèi)容時(shí),用戶的客戶端會(huì)與服務(wù)端(例如彈幕服務(wù)器)進(jìn)行通信,當(dāng)用戶的級(jí)別較高時(shí),服務(wù)端一般會(huì)將用戶進(jìn)入信息(例如提示歡迎用戶進(jìn)入的特權(quán)信息)加載至網(wǎng)絡(luò)直播間。為了觀看直播內(nèi)容,用戶會(huì)向網(wǎng)絡(luò)直播間的服務(wù)端請(qǐng)求大量的直播數(shù)據(jù)(例如直播視頻內(nèi)容和彈幕等)。
但是,網(wǎng)絡(luò)直播間進(jìn)行直播時(shí),會(huì)存在以下缺陷:
(1)網(wǎng)絡(luò)直播間的用戶數(shù)量會(huì)不斷變動(dòng),當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量較多時(shí)、或者因“刷人氣”而使得用戶數(shù)量急劇增加時(shí),會(huì)給服務(wù)端帶來(lái)突發(fā)性的壓力,進(jìn)而可能導(dǎo)致服務(wù)端的cdn節(jié)點(diǎn)(contentdeliverynetwork,內(nèi)容分發(fā)網(wǎng)絡(luò)節(jié)點(diǎn))突發(fā)崩潰;一旦cdn節(jié)點(diǎn)崩潰,網(wǎng)絡(luò)直播間則會(huì)無(wú)法正常使用(例如網(wǎng)絡(luò)直播間“爆點(diǎn)”)。
(2)當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量較多時(shí),會(huì)有大量用戶向服務(wù)端請(qǐng)求直播數(shù)據(jù),進(jìn)而急劇的增加了服務(wù)端的壓力,大幅度降低了服務(wù)端的工作質(zhì)量和工作效率;當(dāng)服務(wù)端的壓力超過(guò)服務(wù)端所能承載的負(fù)荷時(shí),服務(wù)端可能會(huì)崩潰,進(jìn)而導(dǎo)致網(wǎng)絡(luò)直播間無(wú)法正常使用。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明解決的技術(shù)問(wèn)題為:如何根據(jù)網(wǎng)絡(luò)直播間的用戶數(shù)據(jù),來(lái)調(diào)整服務(wù)端的資源分配。本發(fā)明能夠顯著降低服務(wù)端的負(fù)荷,大幅度提高服務(wù)端的工作質(zhì)量和工作效率。
為達(dá)到以上目的,本發(fā)明提供的基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲方法,包括以下步驟:
步驟a:服務(wù)端獲取網(wǎng)絡(luò)直播間的用戶數(shù)量,當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量大于人氣閾值時(shí),轉(zhuǎn)到步驟b;
步驟b:獲取網(wǎng)絡(luò)直播間的房間id,服務(wù)端監(jiān)測(cè)到客戶端進(jìn)行登錄時(shí),停止向房間id對(duì)應(yīng)的網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息,轉(zhuǎn)到步驟c;
步驟c:服務(wù)端對(duì)客戶端的用戶id進(jìn)行延遲標(biāo)識(shí),轉(zhuǎn)到步驟d;
步驟d:當(dāng)附有延遲標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),服務(wù)端將二級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端;
在執(zhí)行步驟b至步驟d的過(guò)程中,還包括步驟e:當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量小于等于人氣閾值時(shí),取消對(duì)客戶端用戶id的延遲標(biāo)識(shí),當(dāng)客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),服務(wù)端將一級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端。
本發(fā)明提供的基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲系統(tǒng),包括位于服務(wù)端上的用戶數(shù)量判定模塊、用戶進(jìn)入信息停止加載模塊、用戶id標(biāo)識(shí)模塊、二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊和一級(jí)緩存直播數(shù)據(jù)發(fā)送模塊;
用戶數(shù)量判定模塊用于:獲取網(wǎng)絡(luò)直播間的用戶數(shù)量,當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量大于人氣閾值時(shí),向用戶進(jìn)入信息停止加載模塊發(fā)送用戶進(jìn)入信息停止加載信號(hào);
用戶進(jìn)入信息停止加載模塊用于:收到用戶進(jìn)入信息停止加載信號(hào)后,獲取網(wǎng)絡(luò)直播間的房間id,監(jiān)測(cè)到客戶端進(jìn)行登錄時(shí),停止向房間id對(duì)應(yīng)的網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息,向用戶id標(biāo)識(shí)模塊發(fā)送用戶id標(biāo)識(shí)信息;
用戶id標(biāo)識(shí)模塊用于:收到用戶id標(biāo)識(shí)信號(hào)后,對(duì)客戶端的用戶id進(jìn)行延遲標(biāo)識(shí),向二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊發(fā)送二級(jí)緩存直播數(shù)據(jù)發(fā)送信號(hào);
二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊用于:收到二級(jí)緩存直播數(shù)據(jù)發(fā)送信號(hào)后,當(dāng)附有延遲標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),服務(wù)端將二級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端;
一級(jí)緩存直播數(shù)據(jù)發(fā)送模塊用于:在所述數(shù)據(jù)延遲系統(tǒng)工作的過(guò)程中,當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量小于等于人氣閾值時(shí),取消對(duì)客戶端用戶id的延遲標(biāo)識(shí),當(dāng)客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),將一級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
(1)參見(jiàn)本發(fā)明的步驟a、c和d可知,本發(fā)明在網(wǎng)絡(luò)直播間的用戶數(shù)量超過(guò)人氣閾值后,對(duì)登錄至網(wǎng)絡(luò)直播間的客戶端進(jìn)行了延遲標(biāo)識(shí)。當(dāng)附有延遲標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)(視頻數(shù)據(jù)和/或彈幕數(shù)據(jù))時(shí),會(huì)向客戶端傳輸二級(jí)緩存處理后的直播數(shù)據(jù),進(jìn)而顯著降低服務(wù)端的壓力,大幅度提高服務(wù)端的工作質(zhì)量和工作效率。
與此同時(shí),參見(jiàn)本發(fā)明的步驟b可知,本發(fā)明在網(wǎng)絡(luò)直播間的用戶數(shù)量超過(guò)人氣閾值后,當(dāng)新的客戶端登錄時(shí),停止向網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息,進(jìn)而進(jìn)一步降低服務(wù)端的壓力,也進(jìn)一步保證了服務(wù)端的工作質(zhì)量和工作效率。
進(jìn)一步,參見(jiàn)本發(fā)明的步驟e可知,本發(fā)明當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量是否小于等于人氣閾值,會(huì)取消所有對(duì)客戶端用戶id的延遲標(biāo)識(shí),進(jìn)而讓所有用戶能夠立即獲取一級(jí)緩存的直播數(shù)據(jù),顯著提升了用戶體驗(yàn);
(2)本發(fā)明在停止向網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息后,會(huì)在客戶端登錄后,向客戶端廣播當(dāng)前網(wǎng)絡(luò)直播間的用戶信息(例如由于網(wǎng)絡(luò)直播間的用戶數(shù)量已達(dá)上限的信息,因此暫停加載歡迎提示特權(quán)),進(jìn)而讓用戶知曉用戶進(jìn)入信息停止加載的原因,進(jìn)一步提升了用戶體驗(yàn)。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲方法的流程圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
參見(jiàn)圖1所示,本發(fā)明實(shí)施例中的基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲方法,包括以下步驟:
s1:服務(wù)端實(shí)時(shí)判斷網(wǎng)絡(luò)直播間的用戶數(shù)量(即人氣數(shù)據(jù))是否大于預(yù)先設(shè)定的人氣閾值,若是,轉(zhuǎn)到s2,否則轉(zhuǎn)到s6。
s1的目的為:判斷網(wǎng)絡(luò)直播間的用戶數(shù)量是否超過(guò)服務(wù)端承載的負(fù)荷,s1的實(shí)現(xiàn)方式為:
counvalue=newwebbarrageserver.threshold.counter.value(),其中counvalue為用戶數(shù)量計(jì)數(shù)器的值;判斷counvalue是否>poplog(人氣閾值),若是,轉(zhuǎn)到s2,否則重新執(zhí)行s1。
s2:?jiǎn)?dòng)人氣自動(dòng)隱身功能:前臺(tái)的web服器端(webfrontendservers)調(diào)用后臺(tái)的接口(backstage),獲取網(wǎng)絡(luò)直播間的房間id(roomid),轉(zhuǎn)到s3。
s2的實(shí)現(xiàn)方式為:backroomidbroomid=
newebfrontendservers.backstage.code();
啟動(dòng)網(wǎng)絡(luò)直播間的隱身功能:
open.webfrontendservers.invisible(broomid)。
s3:加載人氣自動(dòng)隱身功能:當(dāng)用戶的客戶端登錄至網(wǎng)絡(luò)直播間時(shí)(客戶端與網(wǎng)絡(luò)直播間的彈幕服務(wù)器連接),為了減輕服務(wù)端的壓力,服務(wù)端停止向房間id對(duì)應(yīng)的網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息。為了讓客戶端的用戶知曉用戶進(jìn)入信息停止加載的原因,服務(wù)端向客戶端廣播當(dāng)前網(wǎng)絡(luò)直播間的用戶信息,用戶信息包括案由信息和決定信息,例如由于網(wǎng)絡(luò)直播間的用戶數(shù)量已達(dá)上限(案由信息),因此暫停加載歡迎提示特權(quán)(決定信息),轉(zhuǎn)到s4。
s3的實(shí)現(xiàn)方式為:
客戶端在連接網(wǎng)絡(luò)直播間的彈幕服務(wù)器時(shí)(webbarrageserver),對(duì)該彈幕服務(wù)器進(jìn)行標(biāo)示,webbarrageserver.invisible.value(是);由于該彈幕服務(wù)器已經(jīng)被標(biāo)示,因此用戶成功連接后,會(huì)通過(guò)標(biāo)示過(guò)濾,將用戶的歡迎提示/特權(quán)不進(jìn)行加載;同時(shí)通過(guò)彈幕服務(wù)器時(shí)的廣告通知接口(notice),向客戶端發(fā)送廣告通知:
show.webbarrageserver.notice.value(“人氣閾值房間,暫停歡迎提示/特權(quán)!”)。
s4:對(duì)客戶端的用戶id進(jìn)行延遲標(biāo)識(shí)(人氣隱身標(biāo)識(shí)),實(shí)現(xiàn)方式為:調(diào)用彈幕服務(wù)器(webbarrageserver)中的延遲加載/連接參數(shù)(delay),根據(jù)用戶id(userid),對(duì)該用戶的進(jìn)行人氣隱身標(biāo)示:barragelogobarlog=newwebbarrageserver.delay.invisible(userid),轉(zhuǎn)到s5。
s5:當(dāng)附有延遲標(biāo)識(shí)的用戶的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)(視頻數(shù)據(jù)和/或彈幕數(shù)據(jù))時(shí),服務(wù)端將二級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端。
通過(guò)s5可知,本發(fā)明實(shí)施例當(dāng)大于預(yù)先人氣閾值時(shí),會(huì)對(duì)直播數(shù)據(jù)進(jìn)行二級(jí)緩存,具體通過(guò)flash服務(wù)器(webflashserver)的二級(jí)緩存機(jī)制open.webflashserver.buffermemory.open來(lái)完成。之后的客戶端獲取直播數(shù)據(jù)時(shí),會(huì)根據(jù)客戶端的用戶id標(biāo)示(barlog)來(lái)給予相應(yīng)緩存級(jí)別的直播數(shù)據(jù):if(barlog=null),若barlog為空,則代表該用戶未開(kāi)啟人氣自動(dòng)隱身功能,此時(shí)給予一級(jí)緩存的直播數(shù)據(jù);若barlog不為空,則該用戶開(kāi)啟了人氣自動(dòng)隱身功能,此時(shí)給予二級(jí)緩存的直播數(shù)據(jù)??蛻舳嗽L問(wèn)二級(jí)緩存的直播數(shù)據(jù)的實(shí)現(xiàn)方式為:
output.webflashserver.buffermemory.content()。
通過(guò)s4和s5可知:本發(fā)明實(shí)施例對(duì)超過(guò)人氣閾值后登錄的客戶端進(jìn)行延遲標(biāo)識(shí)(人氣隱身標(biāo)識(shí));標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),會(huì)向客戶端傳輸二級(jí)緩存處理后的直播數(shù)據(jù),進(jìn)而顯著降低服務(wù)端的負(fù)荷,大幅度提高服務(wù)端的工作質(zhì)量和工作效率。
s6:當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量小于等于人氣閾值時(shí),中止執(zhí)行中的步驟(例如執(zhí)行s2時(shí)),取消對(duì)客戶端用戶id的延遲標(biāo)識(shí)(即關(guān)閉人氣自動(dòng)隱身功能);當(dāng)客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),服務(wù)端將一級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端,結(jié)束。
s6的目的為:當(dāng)用戶數(shù)量未超過(guò)服務(wù)端的負(fù)荷時(shí),讓所有用戶能夠立即獲取一級(jí)緩存的直播數(shù)據(jù),顯著提高了用戶體驗(yàn);在實(shí)際應(yīng)用中,s6可以在執(zhí)行s2至s5的過(guò)程中并發(fā)進(jìn)行。
本發(fā)明實(shí)施例中的基于網(wǎng)絡(luò)直播間統(tǒng)計(jì)信息的數(shù)據(jù)延遲系統(tǒng),包括位于服務(wù)端上的用戶數(shù)量判定模塊、直播數(shù)據(jù)二級(jí)緩存模塊、用戶進(jìn)入信息停止加載模塊、用戶id標(biāo)識(shí)模塊、二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊和一級(jí)緩存直播數(shù)據(jù)發(fā)送模塊。
用戶數(shù)量判定模塊用于:獲取網(wǎng)絡(luò)直播間的用戶數(shù)量,當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量大于人氣閾值時(shí),向用戶進(jìn)入信息停止加載模塊發(fā)送用戶進(jìn)入信息停止加載信號(hào),此時(shí)直播數(shù)據(jù)二級(jí)緩存模塊通過(guò)二級(jí)緩存機(jī)制,對(duì)直播數(shù)據(jù)(視頻數(shù)據(jù)和/或彈幕數(shù)據(jù))進(jìn)行二級(jí)緩存。當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量小于等于人氣閾值時(shí),向一級(jí)緩存直播數(shù)據(jù)發(fā)送模塊發(fā)送工作信號(hào)。
用戶進(jìn)入信息停止加載模塊用于:收到用戶進(jìn)入信息停止加載信號(hào)后,獲取網(wǎng)絡(luò)直播間的房間id,監(jiān)測(cè)到客戶端進(jìn)行登錄時(shí),停止向房間id對(duì)應(yīng)的網(wǎng)絡(luò)直播間加載用戶進(jìn)入信息,向用戶id標(biāo)識(shí)模塊發(fā)送用戶id標(biāo)識(shí)信息;向重新登錄至網(wǎng)絡(luò)直播間的客戶端,廣播網(wǎng)絡(luò)直播間的用戶信息,用戶信息包括案由信息和決定信息。
用戶id標(biāo)識(shí)模塊用于:收到用戶id標(biāo)識(shí)信號(hào)后,對(duì)客戶端的用戶id進(jìn)行延遲標(biāo)識(shí),向二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊發(fā)送二級(jí)緩存直播數(shù)據(jù)發(fā)送信號(hào);
二級(jí)緩存直播數(shù)據(jù)發(fā)送模塊用于:收到二級(jí)緩存直播數(shù)據(jù)發(fā)送信號(hào)后,當(dāng)附有延遲標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),服務(wù)端將二級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端;
一級(jí)緩存直播數(shù)據(jù)發(fā)送模塊用于:在所述數(shù)據(jù)延遲系統(tǒng)工作的過(guò)程中,當(dāng)網(wǎng)絡(luò)直播間的用戶數(shù)量小于等于人氣閾值時(shí),取消對(duì)客戶端用戶id的延遲標(biāo)識(shí),當(dāng)客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),將一級(jí)緩存后的直播數(shù)據(jù)傳輸至客戶端。
通過(guò)本發(fā)明實(shí)施可知,本發(fā)明在網(wǎng)絡(luò)直播間的用戶數(shù)量超過(guò)人氣閾值后,對(duì)登錄至網(wǎng)絡(luò)直播間的客戶端進(jìn)行了延遲標(biāo)識(shí)。當(dāng)附有延遲標(biāo)識(shí)的客戶端請(qǐng)求獲取網(wǎng)絡(luò)直播間的直播數(shù)據(jù)時(shí),會(huì)向客戶端傳輸二級(jí)緩存處理后的直播數(shù)據(jù),進(jìn)而顯著降低服務(wù)端的壓力,大幅度提高服務(wù)端的工作質(zhì)量和工作效率。
進(jìn)一步,本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。