本申請涉及收視統(tǒng)計(jì)領(lǐng)域,具體而言,涉及一種收視數(shù)統(tǒng)計(jì)方法和裝置。
背景技術(shù):
對于收視統(tǒng)計(jì)領(lǐng)域,目前主要通過分析訪問日志的方式來統(tǒng)計(jì)收視人數(shù)的,而每一個(gè)視頻播放的日志通常是在整個(gè)視頻播放結(jié)束后才能被完整記錄下來,因此,這種統(tǒng)計(jì)方式無法在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)。對于視頻網(wǎng)站或者電視臺(tái)等運(yùn)營視頻的單位而言,實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)具有比較重要的意義,例如,買了特定時(shí)段廣告的廣告主比較關(guān)心該特定時(shí)段的收視數(shù),而運(yùn)營視頻的單位也可以以此為依據(jù)向廣告主收費(fèi)。
針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供了一種收視數(shù)統(tǒng)計(jì)方法和裝置,以至少解決現(xiàn)有技術(shù)中無法在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的技術(shù)問題。
根據(jù)本申請實(shí)施例的一個(gè)方面,提供了一種收視數(shù)統(tǒng)計(jì)方法,包括:接收當(dāng)前時(shí)刻正在播放視頻的客戶端發(fā)送的數(shù)據(jù),所述數(shù)據(jù)攜帶有用于表示所述客戶端的標(biāo)識(shí);以及計(jì)算接收到的所述客戶端的標(biāo)識(shí)的數(shù)量,作為所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),其中,所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)為在所述當(dāng)前時(shí)刻播放視頻的客戶端的總數(shù)。
進(jìn)一步地,接收到的所述客戶端的標(biāo)識(shí)設(shè)置有超時(shí)時(shí)間,其中,計(jì)算接收到的所述客戶端的標(biāo)識(shí)的數(shù)量包括:計(jì)算接收到的所述客戶端的標(biāo)識(shí)中在所述當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量。
進(jìn)一步地,所述方法還包括:按照掃描周期掃描接收到的所述客戶端的標(biāo)識(shí),查詢接收到的所述客戶端的標(biāo)識(shí)的接收時(shí)間;判斷所述接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差是否大于所述超時(shí)時(shí)間;如果所述時(shí)間差大于所述超時(shí)時(shí)間,則確定所述客戶端的標(biāo)識(shí)已超時(shí);清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí)。
進(jìn)一步地,計(jì)算接收到的所述客戶端的標(biāo)識(shí)中在所述當(dāng)前時(shí)刻未超時(shí)的客戶端的 標(biāo)識(shí)的數(shù)量包括:在觸發(fā)計(jì)算所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),查詢接收到的所述客戶端的標(biāo)識(shí)的接收時(shí)間;判斷所述接收時(shí)間與所述當(dāng)前時(shí)刻的時(shí)間差是否大于所述超時(shí)時(shí)間;如果所述時(shí)間差大于所述超時(shí)時(shí)間,則確定所述客戶端的標(biāo)識(shí)已超時(shí);清除所述接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí);計(jì)算清除后的客戶端的標(biāo)識(shí)的數(shù)量。
進(jìn)一步地,所述方法還包括:判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間,其中,X大于等于2;當(dāng)判斷出距離創(chuàng)建所述第X個(gè)存儲(chǔ)區(qū)的時(shí)間達(dá)到所述超時(shí)時(shí)間時(shí),創(chuàng)建第X+1個(gè)存儲(chǔ)區(qū),所述第X+1個(gè)存儲(chǔ)區(qū)用于存儲(chǔ)創(chuàng)建完所述第X+1個(gè)存儲(chǔ)區(qū)之后接收到的所述客戶端的標(biāo)識(shí);刪除第X-1個(gè)存儲(chǔ)區(qū);將X的值加1,并返回執(zhí)行判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間的步驟。
進(jìn)一步地,所述方法還包括:判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間;當(dāng)判斷距離所述當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間達(dá)到所述超時(shí)時(shí)間時(shí),清除上一個(gè)存儲(chǔ)區(qū)存儲(chǔ)的標(biāo)識(shí),將在此之后接收到的所述客戶端的標(biāo)識(shí)存儲(chǔ)到所述上一個(gè)存儲(chǔ)區(qū)中,所述當(dāng)前存儲(chǔ)區(qū)和上一存儲(chǔ)區(qū)為預(yù)置的兩個(gè)存儲(chǔ)區(qū);將所述上一個(gè)存儲(chǔ)區(qū)作為當(dāng)前存儲(chǔ)區(qū),將另一存儲(chǔ)區(qū)作為上一存儲(chǔ)區(qū),返回執(zhí)行判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間的步驟。
進(jìn)一步地,所述標(biāo)識(shí)為由所述客戶端的一個(gè)或者多個(gè)硬件標(biāo)識(shí)得到的標(biāo)識(shí),或者由所述客戶端的操作系統(tǒng)提供的標(biāo)識(shí),或者由所述客戶端隨機(jī)生成的標(biāo)識(shí)。
進(jìn)一步地,所述數(shù)據(jù)還攜帶有所述客戶端播放的視頻資源的標(biāo)識(shí),所述方法還包括:對在所述當(dāng)前時(shí)刻播放相同視頻資源的客戶端的標(biāo)識(shí)的數(shù)量進(jìn)行統(tǒng)計(jì)。
根據(jù)本申請實(shí)施例的另一方面,還提供了一種收視數(shù)統(tǒng)計(jì)裝置,包括:接收單元,用于接收當(dāng)前時(shí)刻正在播放視頻的客戶端發(fā)送的數(shù)據(jù),所述數(shù)據(jù)攜帶有用于表示所述客戶端的標(biāo)識(shí);以及計(jì)算單元,用于計(jì)算接收到的所述客戶端的標(biāo)識(shí)的數(shù)量,作為所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),其中,所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)為在所述當(dāng)前時(shí)刻播放視頻的客戶端的總數(shù)。
進(jìn)一步地,接收到的所述客戶端的標(biāo)識(shí)設(shè)置有超時(shí)時(shí)間,所述計(jì)算單元包括:第一計(jì)算模塊,用于計(jì)算接收到的所述客戶端的標(biāo)識(shí)中在所述當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量。
進(jìn)一步地,所述裝置還包括:查詢單元,用于按照掃描周期掃描接收到的所述客戶端的標(biāo)識(shí),查詢接收到的所述客戶端的標(biāo)識(shí)的接收時(shí)間;第一判斷單元,用于判斷 所述接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差是否大于所述超時(shí)時(shí)間;確定單元,用于在所述時(shí)間差大于所述超時(shí)時(shí)間時(shí),確定所述客戶端的標(biāo)識(shí)已超時(shí);第一清除單元,用于清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí)。
進(jìn)一步地,所述第一計(jì)算模塊包括:查詢子模塊,用于在觸發(fā)計(jì)算所述當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),查詢接收到的所述客戶端的標(biāo)識(shí)的接收時(shí)間;判斷子模塊,用于判斷所述接收時(shí)間與所述當(dāng)前時(shí)刻的時(shí)間差是否大于所述超時(shí)時(shí)間;確定子模塊,用于在所述時(shí)間差大于所述超時(shí)時(shí)間時(shí),確定所述客戶端的標(biāo)識(shí)已超時(shí);清除子模塊,用于清除所述接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí);計(jì)算子模塊,用于計(jì)算清除后的客戶端的標(biāo)識(shí)的數(shù)量。
進(jìn)一步地,所述裝置還包括:第二判斷單元,用于判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間,其中,X大于等于2;創(chuàng)建單元,用于當(dāng)判斷出距離創(chuàng)建所述第X個(gè)存儲(chǔ)區(qū)的時(shí)間達(dá)到所述超時(shí)時(shí)間時(shí),創(chuàng)建第X+1個(gè)存儲(chǔ)區(qū),所述第X+1個(gè)存儲(chǔ)區(qū)用于存儲(chǔ)創(chuàng)建完所述第X+1個(gè)存儲(chǔ)區(qū)之后接收到的所述客戶端的標(biāo)識(shí);刪除單元,用于刪除第X-1個(gè)存儲(chǔ)區(qū);第一返回單元,用于將X的值加1,并返回執(zhí)行判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間的步驟。
進(jìn)一步地,所述裝置還包括:第三判斷單元,用于判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間;第二清除單元,用于當(dāng)判斷距離所述當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間達(dá)到所述超時(shí)時(shí)間時(shí),清除上一個(gè)存儲(chǔ)區(qū)存儲(chǔ)的標(biāo)識(shí),將在此之后接收到的所述客戶端的標(biāo)識(shí)存儲(chǔ)到所述上一個(gè)存儲(chǔ)區(qū)中,所述當(dāng)前存儲(chǔ)區(qū)和上一存儲(chǔ)區(qū)為預(yù)置的兩個(gè)存儲(chǔ)區(qū);第二返回單元,用于將所述上一個(gè)存儲(chǔ)區(qū)作為當(dāng)前存儲(chǔ)區(qū),將另一存儲(chǔ)區(qū)作為上一存儲(chǔ)區(qū),返回執(zhí)行判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)所述客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到所述超時(shí)時(shí)間的步驟。
進(jìn)一步地,所述數(shù)據(jù)還攜帶有所述客戶端播放的視頻資源的標(biāo)識(shí),所述裝置還包括:統(tǒng)計(jì)單元,用于對在所述當(dāng)前時(shí)刻播放相同視頻資源的客戶端的標(biāo)識(shí)的數(shù)量進(jìn)行統(tǒng)計(jì)。
本申請實(shí)施例中,通過接收當(dāng)前時(shí)刻正在播放視頻的客戶端主動(dòng)發(fā)送的數(shù)據(jù),其中,該數(shù)據(jù)攜帶有用于表示客戶端的標(biāo)識(shí),并計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量,作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),由于客戶端在播放視頻時(shí)才發(fā)送數(shù)據(jù),因此,當(dāng)接收到客戶端發(fā)送的數(shù)據(jù)時(shí),則表明該客戶端正在播放視頻,從而無需等到視頻播放結(jié)束再統(tǒng)計(jì)收視數(shù),直接統(tǒng)計(jì)當(dāng)前時(shí)刻的客戶端的標(biāo)識(shí)數(shù)量得到實(shí)時(shí)在線收視數(shù),解決了現(xiàn)有技術(shù)中無法在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的技術(shù)問題,達(dá)到了在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的效果。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請實(shí)施例的收視數(shù)統(tǒng)計(jì)方法的流程圖;
圖2是根據(jù)本申請實(shí)施例的收視數(shù)統(tǒng)計(jì)裝置的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
根據(jù)本申請實(shí)施例,提供了一種收視數(shù)統(tǒng)計(jì)方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,該計(jì)算機(jī)系統(tǒng)可以是服務(wù)器。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本申請實(shí)施例的收視數(shù)統(tǒng)計(jì)方法的流程圖。該方法可以通過服務(wù)器來執(zhí)行,如圖1所示,該方法包括如下步驟:
步驟S102,接收當(dāng)前時(shí)刻正在播放視頻的客戶端發(fā)送的數(shù)據(jù)。該數(shù)據(jù)攜帶有用于表示客戶端的標(biāo)識(shí)。
步驟S104,計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量,作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)。 其中,當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)為在當(dāng)前時(shí)刻播放視頻的客戶端的總數(shù)。這里的“接收到的客戶端的標(biāo)識(shí)”可以包括當(dāng)前時(shí)刻接收到的客戶端的標(biāo)識(shí),還可以包括當(dāng)前時(shí)刻之前接收到的有效的客戶端的標(biāo)識(shí),例如當(dāng)前時(shí)刻之前接收到的未超時(shí)的客戶端的標(biāo)識(shí)。
本實(shí)施例中,客戶端可以是軟件客戶端,例如網(wǎng)頁客戶端、播放器軟件等等,也可以是硬件客戶端,例如有線電視、交互式網(wǎng)絡(luò)電視(internet Protocol television,簡稱為IPTV)、OTT機(jī)頂盒等等。
客戶端在播放視頻的過程中,可以主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),例如客戶端在播放開始后以預(yù)設(shè)時(shí)間間隔向服務(wù)器發(fā)送數(shù)據(jù),其中,發(fā)送的數(shù)據(jù)中至少包括客戶端的標(biāo)識(shí),該標(biāo)識(shí)可以用于表示該客戶端的唯一性,例如身份標(biāo)識(shí)(identification,簡稱為ID)??蛻舳瞬シ诺囊曨l可以是在線播放,也可以緩存到本地的視頻資源。服務(wù)器接收正在播放視頻的客戶端發(fā)送的數(shù)據(jù)之后,可以根據(jù)接收到的標(biāo)識(shí)來確定當(dāng)前時(shí)刻正在播放視頻的客戶端的數(shù)量,得到當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)。
本申請實(shí)施例中,通過接收當(dāng)前時(shí)刻正在播放視頻的客戶端主動(dòng)發(fā)送的數(shù)據(jù),其中,該數(shù)據(jù)攜帶有用于表示客戶端的標(biāo)識(shí),并計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量,作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),由于客戶端在播放視頻時(shí)才發(fā)送數(shù)據(jù),因此,當(dāng)接收到客戶端發(fā)送的數(shù)據(jù)時(shí),則表明該客戶端正在播放視頻,從而無需等到視頻播放結(jié)束再統(tǒng)計(jì)收視數(shù),直接統(tǒng)計(jì)當(dāng)前時(shí)刻的客戶端的標(biāo)識(shí)數(shù)量得到實(shí)時(shí)在線收視數(shù),解決了現(xiàn)有技術(shù)中無法在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的技術(shù)問題,達(dá)到了在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的效果。
本申請實(shí)施例的方案可以統(tǒng)計(jì)出在某一秒或者一分鐘的時(shí)間粒度內(nèi)的在線收視數(shù)。另外,本申請實(shí)施例相對于現(xiàn)有技術(shù)中采用連接數(shù)來統(tǒng)計(jì)在線收視數(shù)的方案也具有優(yōu)勢?,F(xiàn)有技術(shù)采用連接數(shù)來統(tǒng)計(jì)在線收視數(shù)的方案能夠統(tǒng)計(jì)的在線收視數(shù)是直接連接到服務(wù)器的客戶端的數(shù)量,然而,如果用戶是通過緩存到或者對等網(wǎng)絡(luò)(peer to peer,簡稱為P2P)等方式獲得的視頻數(shù)據(jù)的話,則無法統(tǒng)計(jì)該用戶的客戶端,造成統(tǒng)計(jì)結(jié)果不準(zhǔn)確。本申請實(shí)施例中,由于是客戶端在播放視頻時(shí)主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),因此,當(dāng)客戶端在播放緩存到的視頻資源時(shí),也主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),這樣,這些客戶端也被統(tǒng)計(jì)在實(shí)時(shí)在線收視數(shù)中,從而提高了統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。例如,當(dāng)前時(shí)刻有接收到的客戶端的標(biāo)識(shí)的數(shù)量為10000,也即是在當(dāng)前時(shí)刻還在播放視頻(無論播放的視頻資源是相同的還是不同的)的客戶端的數(shù)量,其中,有9500個(gè)客戶端在線播放視頻,另外500個(gè)客戶端播放的是緩存下來的視頻,但在統(tǒng)計(jì)當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),由于500個(gè)播放緩存的視頻的客戶端也在線,因此,將其統(tǒng)計(jì)在在線收視 數(shù)中。
可選地,本申請實(shí)施例的標(biāo)識(shí)為由客戶端的一個(gè)或者多個(gè)硬件標(biāo)識(shí)得到的標(biāo)識(shí),或者由客戶端的操作系統(tǒng)提供的標(biāo)識(shí),或者由客戶端隨機(jī)生成的標(biāo)識(shí)。
具體地,對于由客戶端的一個(gè)或者多個(gè)硬件標(biāo)識(shí)得到的標(biāo)識(shí),客戶端可以獲取一個(gè)或多個(gè)具有唯一標(biāo)識(shí)的硬件信息,直接當(dāng)作客戶端的ID,或者進(jìn)行計(jì)算加工后當(dāng)作客戶端的ID。例如,機(jī)頂盒的ID就是一種唯一硬件標(biāo)識(shí),可以直接取它作為客戶端的ID;又比如電腦上的播放器程序可以獲取到網(wǎng)卡MAC地址、中央處理器、主板、硬盤的編號(hào)這樣的多個(gè)硬件唯一標(biāo)識(shí),就可以取它們做一個(gè)哈希計(jì)算操作,作為客戶端的ID。其中,關(guān)于哈希計(jì)算的方式有很多,常見的如MD5等這里不做贅述。
對于由客戶端的操作系統(tǒng)提供的標(biāo)識(shí),客戶端可以獲取一個(gè)由操作系統(tǒng)提供的唯一標(biāo)識(shí),則通過操作系統(tǒng)接口獲取該標(biāo)識(shí)作為客戶端的ID即可。比如iOS系統(tǒng)可以通過接口獲取IDFA-identifierForIdentifier作為唯一標(biāo)識(shí)。
對于由客戶端隨機(jī)生成的標(biāo)識(shí),由于客戶端可以提供持久化存儲(chǔ),那么就通過任意的隨機(jī)算法生成一個(gè)標(biāo)識(shí),并將其存儲(chǔ)下來,以后每次發(fā)送的數(shù)據(jù)都包含這個(gè)標(biāo)識(shí)。其中,為了保證沖突率低(即不同客戶端的ID相同的概率盡可能小),其中一種可選的隨機(jī)算法實(shí)現(xiàn)是:在客戶端第一次運(yùn)行的時(shí)候,獲取當(dāng)前時(shí)刻T,可以精確到毫秒(若可以更精確則更好),確定一個(gè)零時(shí)刻,比如Z=2000-1-100:00:00,那么使用通過T-Z計(jì)算當(dāng)前時(shí)刻從零時(shí)刻起經(jīng)過的時(shí)間,得到一個(gè)整數(shù)值,比如1110211028,再隨機(jī)獲得一個(gè)8位的字符串,并將其拼接起來作為客戶端的ID,最終結(jié)果形如1110211028ogovubn5。
上述中得到的客戶端的ID,在客戶端每次播放視頻時(shí),將其發(fā)送至服務(wù)器,需要說明的是,相同的客戶端每次發(fā)送至服務(wù)器的ID都是相同的,避免出現(xiàn)在不同時(shí)刻發(fā)送不同的ID而影響統(tǒng)計(jì)結(jié)果的情況。
可選地,接收到的客戶端的標(biāo)識(shí)設(shè)置有超時(shí)時(shí)間,其中,計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量包括:計(jì)算接收到的客戶端的標(biāo)識(shí)中在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量。
本實(shí)施例中,服務(wù)器在接收到客戶端發(fā)送的數(shù)據(jù)之后,服務(wù)器可以根據(jù)接收到的數(shù)據(jù)中的客戶端的標(biāo)識(shí)來判斷該客戶端的標(biāo)識(shí)是否存在,如果客戶端的標(biāo)識(shí)不存在,則保存該客戶端的標(biāo)識(shí),并且設(shè)置該客戶端的標(biāo)識(shí)的在N秒后超時(shí),其中,N為超時(shí)時(shí)間;如果客戶端的標(biāo)識(shí)存在,則直接設(shè)置該客戶端的標(biāo)識(shí)的在N秒后超時(shí)。在統(tǒng)計(jì)當(dāng)前時(shí)刻的在線收視數(shù)時(shí),將接收到的客戶端的標(biāo)識(shí)中在當(dāng)前時(shí)刻未超時(shí)的客戶端的 標(biāo)識(shí)的數(shù)量作為當(dāng)前時(shí)刻的在線收視數(shù)。
需要說明的是,這里的“在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)”包括當(dāng)前時(shí)刻向服務(wù)器發(fā)送數(shù)據(jù)的客戶端的標(biāo)識(shí),還包括當(dāng)前時(shí)刻之前發(fā)送過數(shù)據(jù)且未超時(shí)的客戶端的標(biāo)識(shí)。例如,假設(shè)超時(shí)時(shí)間為10s,當(dāng)前時(shí)刻為10:00:00,在9:59:49時(shí)間點(diǎn)接收到20000個(gè)客戶端的標(biāo)識(shí),在9:59:51時(shí)間點(diǎn)接收到30000個(gè)客戶端的標(biāo)識(shí),在10:00:00時(shí)間點(diǎn)接收到40000個(gè)客戶端的標(biāo)識(shí),上述三次接收到的客戶端標(biāo)識(shí)均不相同。當(dāng)統(tǒng)計(jì)10:00:00時(shí)刻的在線實(shí)時(shí)收視數(shù)時(shí),由于9:59:49接收到的客戶端的標(biāo)識(shí)已超時(shí)(在超時(shí)之前未重新收到這些客戶端的標(biāo)識(shí)),因此,認(rèn)為這些客戶端在當(dāng)前時(shí)刻10:00:00已經(jīng)下線,不統(tǒng)計(jì)在在線收視數(shù)內(nèi),最終計(jì)算的10:00:00時(shí)刻的在線實(shí)時(shí)收視數(shù)為70000。
上述超時(shí)時(shí)間N還可以稱為生命周期,可以根據(jù)業(yè)務(wù)上的精度需求設(shè)置其時(shí)間長度。該生命周期本質(zhì)上是將來自客戶端的數(shù)據(jù)都當(dāng)成該客戶端的心跳數(shù)據(jù),通過標(biāo)識(shí)來識(shí)別每條數(shù)據(jù)都是哪個(gè)客戶端的心跳數(shù)據(jù),進(jìn)而判斷各個(gè)客戶端是否還在播放視頻。如果超過該生命周期未能收到客戶端發(fā)送的數(shù)據(jù),則表明該客戶端已經(jīng)下線,也即是未播放視頻。因此,本申請實(shí)施例的客戶端在播放視頻的過程中,向服務(wù)器發(fā)送數(shù)據(jù)的時(shí)間間隔小于N,以避免服務(wù)器誤認(rèn)為該客戶端已下線。
考慮到網(wǎng)絡(luò)延遲,N可以設(shè)置為大于10秒的時(shí)間,同時(shí)由于上述統(tǒng)計(jì)都有不同時(shí)間粒度的需求,因此N優(yōu)選小于時(shí)間粒度的時(shí)間,比如要求統(tǒng)計(jì)分鐘級(jí)別的在線收視數(shù),那么N可以優(yōu)選小于60秒的時(shí)間。
本申請實(shí)施例中,通過設(shè)置超時(shí)時(shí)間,將超過超時(shí)時(shí)間未播放視頻的客戶端剔除,從而提高在線收視數(shù)的統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
可選地,方法還包括:按照掃描周期掃描接收到的客戶端的標(biāo)識(shí),查詢接收到的客戶端的標(biāo)識(shí)的接收時(shí)間;判斷接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間;如果時(shí)間差大于超時(shí)時(shí)間,則確定客戶端的標(biāo)識(shí)已超時(shí);清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí)。本申請中,兩個(gè)時(shí)刻的時(shí)間差為這兩個(gè)時(shí)刻的差值的絕對值。
本申請實(shí)施例中,對于已超時(shí)的客戶端的標(biāo)識(shí),可以采用定時(shí)掃描的方式將其剔除。具體地,可以設(shè)定一個(gè)固定掃描周期的定時(shí)器,每隔一個(gè)周期就觸發(fā)一次清除。在清除時(shí)掃描所有接收到的客戶端的標(biāo)識(shí),并查詢他們的接收時(shí)間,如果發(fā)現(xiàn)接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差大于超時(shí)時(shí)間,表明該客戶端的標(biāo)識(shí)已超時(shí),則將其清除。具體地,在每次掃描過程中,可以先對所有客戶端的標(biāo)識(shí)進(jìn)行掃描,并標(biāo)記出已超時(shí) 的客戶端的標(biāo)識(shí),在掃描結(jié)束時(shí),將所有標(biāo)記有已超時(shí)的客戶端的標(biāo)識(shí)清除;或者,在每次掃描過程中,在掃描出已超時(shí)的客戶端的標(biāo)識(shí)后,直接將其清除,之后再掃描下一個(gè)客戶端的標(biāo)識(shí)。
本申請實(shí)施例中,通過設(shè)置掃描周期,按照該掃描周期對接收到的客戶端的標(biāo)識(shí)進(jìn)行掃描,從而確定出已超時(shí)的標(biāo)識(shí)并對其進(jìn)行清除,提高在線收視數(shù)的統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
可選地,計(jì)算接收到的客戶端的標(biāo)識(shí)中在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量包括:在觸發(fā)計(jì)算當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),查詢接收到的客戶端的標(biāo)識(shí)的接收時(shí)間;判斷接收時(shí)間與當(dāng)前時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間;如果時(shí)間差大于超時(shí)時(shí)間,則確定客戶端的標(biāo)識(shí)已超時(shí);清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí);計(jì)算清除后的客戶端的標(biāo)識(shí)的數(shù)量。
由于并不是所有時(shí)刻都要統(tǒng)計(jì)在線收視數(shù),本申請實(shí)施例中,當(dāng)需要統(tǒng)計(jì)某一時(shí)刻的在線收視數(shù)時(shí)即觸發(fā)計(jì)算該時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),再對已超時(shí)的標(biāo)識(shí)進(jìn)行清除,也即是進(jìn)行統(tǒng)計(jì)輸出時(shí)清除已超時(shí)的標(biāo)識(shí),具體通過查詢客戶端的標(biāo)識(shí)的接收時(shí)間與當(dāng)前時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間來確定已超時(shí)的客戶端的標(biāo)識(shí)。這樣,無需單獨(dú)維護(hù)一個(gè)定時(shí)器,也無需反復(fù)地清除已超時(shí)的標(biāo)識(shí),只需在統(tǒng)計(jì)輸出時(shí)清除一次即可,從而降低服務(wù)器處理數(shù)據(jù)的壓力。
可選地,方法還包括:判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到超時(shí)時(shí)間,其中,X大于等于2;當(dāng)判斷出距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間達(dá)到超時(shí)時(shí)間時(shí),創(chuàng)建第X+1個(gè)存儲(chǔ)區(qū),第X+1個(gè)存儲(chǔ)區(qū)用于存儲(chǔ)創(chuàng)建完第X+1個(gè)存儲(chǔ)區(qū)之后接收到的客戶端的標(biāo)識(shí);刪除第X-1個(gè)存儲(chǔ)區(qū);將X的值加1,并返回執(zhí)行判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到超時(shí)時(shí)間的步驟。
本實(shí)施例中,每隔N秒即超時(shí)時(shí)間創(chuàng)建一個(gè)存儲(chǔ)區(qū),當(dāng)收到客戶端的數(shù)據(jù)時(shí),在最新創(chuàng)建的那個(gè)存儲(chǔ)區(qū)查找或保存客戶端的標(biāo)識(shí)。具體地,當(dāng)?shù)赬+1個(gè)存儲(chǔ)區(qū)創(chuàng)建時(shí),第X-1個(gè)存儲(chǔ)區(qū)就可以整個(gè)清除掉了,所以始終都只需要兩個(gè)存儲(chǔ)區(qū)(即第X個(gè)存儲(chǔ)區(qū)和第X+1個(gè)存儲(chǔ)區(qū))。由于第X-1個(gè)存儲(chǔ)區(qū)內(nèi)的標(biāo)識(shí)一定是N秒前收到的,即已全部超時(shí)了,而如果一個(gè)標(biāo)識(shí)還沒超時(shí),說明它是在最近N秒內(nèi)收到的,它必然出現(xiàn)在第X個(gè)存儲(chǔ)區(qū)或者第X+1個(gè)存儲(chǔ)區(qū)中。在創(chuàng)建第X+1個(gè)存儲(chǔ)區(qū)時(shí),所有未超時(shí)的客戶端的標(biāo)識(shí)均存儲(chǔ)在第X個(gè)存儲(chǔ)區(qū)中。
本實(shí)施例中,在計(jì)算當(dāng)前時(shí)刻的在線收視數(shù)時(shí),可以將當(dāng)前時(shí)刻的第X個(gè)存儲(chǔ)區(qū)和第X+1個(gè)存儲(chǔ)區(qū)中存儲(chǔ)的客戶端的標(biāo)識(shí)的數(shù)量作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)。這 樣,無需遍歷查詢存儲(chǔ)的所有客戶端的標(biāo)識(shí)是否超時(shí),由于遍歷查詢會(huì)占用大量的服務(wù)器資源,本實(shí)施例則能夠在不占用大量的服務(wù)器資源的情況下,提高統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
優(yōu)選地,方法還包括:判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到超時(shí)時(shí)間;當(dāng)判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端的標(biāo)識(shí)的時(shí)間達(dá)到超時(shí)時(shí)間時(shí),清除上一個(gè)存儲(chǔ)區(qū)存儲(chǔ)的標(biāo)識(shí),將在此之后接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到上一個(gè)存儲(chǔ)區(qū)中,當(dāng)前存儲(chǔ)區(qū)和上一存儲(chǔ)區(qū)為預(yù)置的兩個(gè)存儲(chǔ)區(qū);將上一個(gè)存儲(chǔ)區(qū)作為當(dāng)前存儲(chǔ)區(qū),將另一存儲(chǔ)區(qū)作為上一存儲(chǔ)區(qū),返回執(zhí)行判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到超時(shí)時(shí)間的步驟。
本申請實(shí)施例中,還可以是在只建立兩個(gè)存儲(chǔ)區(qū)的情況下,及時(shí)清除已超時(shí)的客戶端的標(biāo)識(shí)。具體地,在第一存儲(chǔ)區(qū)(當(dāng)前存儲(chǔ)區(qū))的開始存儲(chǔ)標(biāo)識(shí)超過超時(shí)時(shí)間時(shí),清除第二存儲(chǔ)區(qū)(上一個(gè)存儲(chǔ)區(qū))的數(shù)據(jù),并將后續(xù)接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到該清除后的第二存儲(chǔ)區(qū),在又經(jīng)過一個(gè)超時(shí)時(shí)間之后,則第二存儲(chǔ)區(qū)開始存儲(chǔ)標(biāo)識(shí)的時(shí)間達(dá)到超時(shí)時(shí)間,清除第一存儲(chǔ)區(qū)的數(shù)據(jù),并將后續(xù)接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到該清除后的第一存儲(chǔ)區(qū),如此反復(fù)利用第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū)。這樣,無需每隔一個(gè)超時(shí)時(shí)間創(chuàng)建一個(gè)存儲(chǔ)區(qū)。
可選地,數(shù)據(jù)還攜帶有客戶端播放的視頻資源的標(biāo)識(shí),方法還包括:對在當(dāng)前時(shí)刻播放相同視頻資源的客戶端的標(biāo)識(shí)的數(shù)量進(jìn)行統(tǒng)計(jì)。
本申請實(shí)施例中,客戶端向服務(wù)器發(fā)送的數(shù)據(jù)還可以攜帶有該客戶端所播放的視頻資源的標(biāo)識(shí),以便于服務(wù)器識(shí)別出相同的視頻資源,這樣,服務(wù)器則可以對當(dāng)前時(shí)刻的播放相同視頻的收視數(shù)進(jìn)行統(tǒng)計(jì),或者分別對各個(gè)視頻資源的播放收視數(shù)進(jìn)行統(tǒng)計(jì)計(jì)算。例如,在需要統(tǒng)計(jì)當(dāng)前時(shí)刻播放目標(biāo)視頻A的收視數(shù)時(shí),服務(wù)器可以根據(jù)接收到客戶端的數(shù)據(jù)中攜帶的視頻資源的標(biāo)識(shí)識(shí)別出與目標(biāo)視頻A對應(yīng)的標(biāo)識(shí),統(tǒng)計(jì)出具有其相應(yīng)的客戶端的標(biāo)識(shí)的數(shù)量,從而得到當(dāng)前時(shí)刻播放目標(biāo)視頻A的收視數(shù)。
本申請實(shí)施例該提供了一種收視數(shù)統(tǒng)計(jì)裝置,該裝置可以設(shè)置在服務(wù)器上,用于執(zhí)行本申請實(shí)施例的收視數(shù)統(tǒng)計(jì)方法,如圖2所示,該收視數(shù)統(tǒng)計(jì)裝置包括:接收單元10和計(jì)算單元20。
接收單元10用于接收當(dāng)前時(shí)刻正在播放視頻的客戶端發(fā)送的數(shù)據(jù),數(shù)據(jù)攜帶有用于表示客戶端的標(biāo)識(shí)。
計(jì)算單元20用于計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量,作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),其中,當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)為在當(dāng)前時(shí)刻播放視頻的客戶端的總數(shù)。這 里的“接收到的客戶端的標(biāo)識(shí)”可以包括當(dāng)前時(shí)刻接收到的客戶端的標(biāo)識(shí),還可以包括當(dāng)前時(shí)刻之前接收到的有效的客戶端的標(biāo)識(shí),例如當(dāng)前時(shí)刻之前接收到的未超時(shí)的客戶端的標(biāo)識(shí)。
本實(shí)施例中,客戶端可以是軟件客戶端,例如網(wǎng)頁客戶端、播放器軟件等等,也可以是硬件客戶端,例如有線電視、交互式網(wǎng)絡(luò)電視(internet Protocol television,簡稱為IPTV)、OTT機(jī)頂盒等等。
客戶端在播放視頻的過程中,可以主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),例如客戶端在播放開始后以預(yù)設(shè)時(shí)間間隔向服務(wù)器發(fā)送數(shù)據(jù),其中,發(fā)送的數(shù)據(jù)中至少包括客戶端的標(biāo)識(shí),該標(biāo)識(shí)可以用于表示該客戶端的唯一性,例如身份標(biāo)識(shí)(identification,簡稱為ID)??蛻舳瞬シ诺囊曨l可以是在線播放,也可以緩存到本地的視頻資源。服務(wù)器接收正在播放視頻的客戶端發(fā)送的數(shù)據(jù)之后,可以根據(jù)接收到的標(biāo)識(shí)來確定當(dāng)前時(shí)刻正在播放視頻的客戶端的數(shù)量,得到當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)。
本申請實(shí)施例中,通過接收當(dāng)前時(shí)刻正在播放視頻的客戶端主動(dòng)發(fā)送的數(shù)據(jù),其中,該數(shù)據(jù)攜帶有用于表示客戶端的標(biāo)識(shí),并計(jì)算接收到的客戶端的標(biāo)識(shí)的數(shù)量,作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù),由于客戶端在播放視頻時(shí)才發(fā)送數(shù)據(jù),因此,當(dāng)接收到客戶端發(fā)送的數(shù)據(jù)時(shí),則表明該客戶端正在播放視頻,從而無需等到視頻播放結(jié)束再統(tǒng)計(jì)收視數(shù),直接統(tǒng)計(jì)當(dāng)前時(shí)刻的客戶端的標(biāo)識(shí)數(shù)量得到實(shí)時(shí)在線收視數(shù),解決了現(xiàn)有技術(shù)中無法在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的技術(shù)問題,達(dá)到了在視頻播放過程中實(shí)時(shí)統(tǒng)計(jì)在線收視數(shù)的效果。
本申請實(shí)施例的方案可以統(tǒng)計(jì)出在某一秒或者一分鐘的時(shí)間粒度內(nèi)的在線收視數(shù)。另外,本申請實(shí)施例相對于現(xiàn)有技術(shù)中采用連接數(shù)來統(tǒng)計(jì)在線收視數(shù)的方案也具有優(yōu)勢。現(xiàn)有技術(shù)采用連接數(shù)來統(tǒng)計(jì)在線收視數(shù)的方案能夠統(tǒng)計(jì)的在線收視數(shù)是直接連接到服務(wù)器的客戶端的數(shù)量,然而,如果用戶是通過緩存到或者對等網(wǎng)絡(luò)(peer to peer,簡稱為P2P)等方式獲得的視頻數(shù)據(jù)的話,則無法統(tǒng)計(jì)該用戶的客戶端,造成統(tǒng)計(jì)結(jié)果不準(zhǔn)確。本申請實(shí)施例中,由于是客戶端在播放視頻時(shí)主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),因此,當(dāng)客戶端在播放緩存到的視頻資源時(shí),也主動(dòng)向服務(wù)器發(fā)送數(shù)據(jù),這樣,這些客戶端也被統(tǒng)計(jì)在實(shí)時(shí)在線收視數(shù)中,從而提高了統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。例如,當(dāng)前時(shí)刻有接收到的客戶端的標(biāo)識(shí)的數(shù)量為10000,也即是在當(dāng)前時(shí)刻還在播放視頻(無論播放的視頻資源是相同的還是不同的)的客戶端的數(shù)量,其中,有9500個(gè)客戶端在線播放視頻,另外500個(gè)客戶端播放的是緩存下來的視頻,但在統(tǒng)計(jì)當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),由于500個(gè)播放緩存的視頻的客戶端也在線,因此,將其統(tǒng)計(jì)在在線收視數(shù)中。
具體地,對于由客戶端的一個(gè)或者多個(gè)硬件標(biāo)識(shí)得到的標(biāo)識(shí),客戶端可以獲取一個(gè)或多個(gè)具有唯一標(biāo)識(shí)的硬件信息,直接當(dāng)作客戶端的ID,或者進(jìn)行計(jì)算加工后當(dāng)作客戶端的ID。例如,機(jī)頂盒的ID就是一種唯一硬件標(biāo)識(shí),可以直接取它作為客戶端的ID;又比如電腦上的播放器程序可以獲取到網(wǎng)卡MAC地址、中央處理器、主板、硬盤的編號(hào)這樣的多個(gè)硬件唯一標(biāo)識(shí),就可以取它們做一個(gè)哈希計(jì)算操作,作為客戶端的ID。其中,關(guān)于哈希計(jì)算的方式有很多,常見的如MD5等這里不做贅述。
對于由客戶端的操作系統(tǒng)提供的標(biāo)識(shí),客戶端可以獲取一個(gè)由操作系統(tǒng)提供的唯一標(biāo)識(shí),則通過操作系統(tǒng)接口獲取該標(biāo)識(shí)作為客戶端的ID即可。比如iOS系統(tǒng)可以通過接口獲取IDFA-identifierForIdentifier作為唯一標(biāo)識(shí)。
對于由客戶端隨機(jī)生成的標(biāo)識(shí),由于客戶端可以提供持久化存儲(chǔ),那么就通過任意的隨機(jī)算法生成一個(gè)標(biāo)識(shí),并將其存儲(chǔ)下來,以后每次發(fā)送的數(shù)據(jù)都包含這個(gè)標(biāo)識(shí)。其中,為了保證沖突率低(即不同客戶端的ID相同的概率盡可能小),其中一種可選的隨機(jī)算法實(shí)現(xiàn)是:在客戶端第一次運(yùn)行的時(shí)候,獲取當(dāng)前時(shí)刻T,可以精確到毫秒(若可以更精確則更好),確定一個(gè)零時(shí)刻,比如Z=2000-1-100:00:00,那么使用通過T-Z計(jì)算當(dāng)前時(shí)刻從零時(shí)刻起經(jīng)過的時(shí)間,得到一個(gè)整數(shù)值,比如1110211028,再隨機(jī)獲得一個(gè)8位的字符串,并將其拼接起來作為客戶端的ID,最終結(jié)果形如1110211028ogovubn5。
上述中得到的客戶端的ID,在客戶端每次播放視頻時(shí),將其發(fā)送至服務(wù)器,需要說明的是,相同的客戶端每次發(fā)送至服務(wù)器的ID都是相同的,避免出現(xiàn)在不同時(shí)刻發(fā)送不同的ID而影響統(tǒng)計(jì)結(jié)果的情況。
優(yōu)選地,接收到的客戶端的標(biāo)識(shí)設(shè)置有超時(shí)時(shí)間,計(jì)算單元包括:第一計(jì)算模塊,用于計(jì)算接收到的客戶端的標(biāo)識(shí)中在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量。
本實(shí)施例中,服務(wù)器在接收到客戶端發(fā)送的數(shù)據(jù)之后,服務(wù)器可以根據(jù)接收到的數(shù)據(jù)中的客戶端的標(biāo)識(shí)來判斷該客戶端的標(biāo)識(shí)是否存在,如果客戶端的標(biāo)識(shí)不存在,則保存該客戶端的標(biāo)識(shí),并且設(shè)置該客戶端的標(biāo)識(shí)的在N秒后超時(shí),其中,N為超時(shí)時(shí)間;如果客戶端的標(biāo)識(shí)存在,則直接設(shè)置該客戶端的標(biāo)識(shí)的在N秒后超時(shí)。在統(tǒng)計(jì)當(dāng)前時(shí)刻的在線收視數(shù)時(shí),將接收到的客戶端的標(biāo)識(shí)中在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)的數(shù)量作為當(dāng)前時(shí)刻的在線收視數(shù)。
需要說明的是,這里的“在當(dāng)前時(shí)刻未超時(shí)的客戶端的標(biāo)識(shí)”包括當(dāng)前時(shí)刻向服務(wù)器發(fā)送數(shù)據(jù)的客戶端的標(biāo)識(shí),還包括當(dāng)前時(shí)刻之前發(fā)送過數(shù)據(jù)且未超時(shí)的客戶端的標(biāo)識(shí)。例如,假設(shè)超時(shí)時(shí)間為10s,當(dāng)前時(shí)刻為10:00:00,在9:59:49時(shí)間點(diǎn)接收到 20000個(gè)客戶端的標(biāo)識(shí),在9:59:51時(shí)間點(diǎn)接收到30000個(gè)客戶端的標(biāo)識(shí),在10:00:00時(shí)間點(diǎn)接收到40000個(gè)客戶端的標(biāo)識(shí),上述三次接收到的客戶端標(biāo)識(shí)均不相同。當(dāng)統(tǒng)計(jì)10:00:00時(shí)刻的在線實(shí)時(shí)收視數(shù)時(shí),由于9:59:49接收到的客戶端的標(biāo)識(shí)已超時(shí)(在超時(shí)之前未重新收到這些客戶端的標(biāo)識(shí)),因此,認(rèn)為這些客戶端在當(dāng)前時(shí)刻10:00:00已經(jīng)下線,不統(tǒng)計(jì)在在線收視數(shù)內(nèi),最終計(jì)算的10:00:00時(shí)刻的在線實(shí)時(shí)收視數(shù)為70000。
上述超時(shí)時(shí)間N還可以稱為生命周期,可以根據(jù)業(yè)務(wù)上的精度需求設(shè)置其時(shí)間長度。該生命周期本質(zhì)上是將來自客戶端的數(shù)據(jù)都當(dāng)成該客戶端的心跳數(shù)據(jù),通過標(biāo)識(shí)來識(shí)別每條數(shù)據(jù)都是哪個(gè)客戶端的心跳數(shù)據(jù),進(jìn)而判斷各個(gè)客戶端是否還在播放視頻。如果超過該生命周期未能收到客戶端發(fā)送的數(shù)據(jù),則表明該客戶端已經(jīng)下線,也即是未播放視頻。因此,本申請實(shí)施例的客戶端在播放視頻的過程中,向服務(wù)器發(fā)送數(shù)據(jù)的時(shí)間間隔小于N,以避免服務(wù)器誤認(rèn)為該客戶端已下線。
考慮到網(wǎng)絡(luò)延遲,N可以設(shè)置為大于10秒的時(shí)間,同時(shí)由于上述統(tǒng)計(jì)都有不同時(shí)間粒度的需求,因此N優(yōu)選小于時(shí)間粒度的時(shí)間,比如要求統(tǒng)計(jì)分鐘級(jí)別的在線收視數(shù),那么N可以優(yōu)選小于60秒的時(shí)間。
本申請實(shí)施例中,通過設(shè)置超時(shí)時(shí)間,將超過超時(shí)時(shí)間未播放視頻的客戶端剔除,從而提高在線收視數(shù)的統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
優(yōu)選地,裝置還包括:查詢單元,用于按照掃描周期掃描接收到的客戶端的標(biāo)識(shí),查詢接收到的客戶端的標(biāo)識(shí)的接收時(shí)間;第一判斷單元,用于判斷接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間;確定單元,用于在時(shí)間差大于超時(shí)時(shí)間時(shí),確定客戶端的標(biāo)識(shí)已超時(shí);第一清除單元,用于清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí)。
本申請實(shí)施例中,對于已超時(shí)的客戶端的標(biāo)識(shí),可以采用定時(shí)掃描的方式將其剔除。具體地,可以設(shè)定一個(gè)固定掃描周期的定時(shí)器,每隔一個(gè)周期就觸發(fā)一次清除。在清除時(shí)掃描所有接收到的客戶端的標(biāo)識(shí),并查詢他們的接收時(shí)間,如果發(fā)現(xiàn)接收時(shí)間與當(dāng)次掃描時(shí)刻的時(shí)間差大于超時(shí)時(shí)間,表明該客戶端的標(biāo)識(shí)已超時(shí),則將其清除。具體地,在每次掃描過程中,可以先對所有客戶端的標(biāo)識(shí)進(jìn)行掃描,并標(biāo)記出已超時(shí)的客戶端的標(biāo)識(shí),在掃描結(jié)束時(shí),將所有標(biāo)記有已超時(shí)的客戶端的標(biāo)識(shí)清除;或者,在每次掃描過程中,在掃描出已超時(shí)的客戶端的標(biāo)識(shí)后,直接將其清除,之后再掃描下一個(gè)客戶端的標(biāo)識(shí)。
本申請實(shí)施例中,通過設(shè)置掃描周期,按照該掃描周期對接收到的客戶端的標(biāo)識(shí) 進(jìn)行掃描,從而確定出已超時(shí)的標(biāo)識(shí)并對其進(jìn)行清除,提高在線收視數(shù)的統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
優(yōu)選地,第一計(jì)算模塊包括:查詢子模塊,用于在觸發(fā)計(jì)算當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),查詢接收到的客戶端的標(biāo)識(shí)的接收時(shí)間;判斷子模塊,用于判斷接收時(shí)間與當(dāng)前時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間;確定子模塊,用于在時(shí)間差大于超時(shí)時(shí)間時(shí),確定客戶端的標(biāo)識(shí)已超時(shí);清除子模塊,用于清除接收到的客戶端的標(biāo)識(shí)中已超時(shí)的客戶端的標(biāo)識(shí);計(jì)算子模塊,用于計(jì)算清除后的客戶端的標(biāo)識(shí)的數(shù)量。
由于并不是所有時(shí)刻都要統(tǒng)計(jì)在線收視數(shù),本申請實(shí)施例中,當(dāng)需要統(tǒng)計(jì)某一時(shí)刻的在線收視數(shù)時(shí)即觸發(fā)計(jì)算該時(shí)刻的實(shí)時(shí)在線收視數(shù)時(shí),再對已超時(shí)的標(biāo)識(shí)進(jìn)行清除,也即是進(jìn)行統(tǒng)計(jì)輸出時(shí)清除已超時(shí)的標(biāo)識(shí),具體通過查詢客戶端的標(biāo)識(shí)的接收時(shí)間與當(dāng)前時(shí)刻的時(shí)間差是否大于超時(shí)時(shí)間來確定已超時(shí)的客戶端的標(biāo)識(shí)。這樣,無需單獨(dú)維護(hù)一個(gè)定時(shí)器,也無需反復(fù)地清除已超時(shí)的標(biāo)識(shí),只需在統(tǒng)計(jì)輸出時(shí)清除一次即可,從而降低服務(wù)器處理數(shù)據(jù)的壓力。
優(yōu)選地,裝置還包括:第二判斷單元,用于判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到超時(shí)時(shí)間,其中,X大于等于2;創(chuàng)建單元,用于當(dāng)判斷出距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間達(dá)到超時(shí)時(shí)間時(shí),創(chuàng)建第X+1個(gè)存儲(chǔ)區(qū),第X+1個(gè)存儲(chǔ)區(qū)用于存儲(chǔ)創(chuàng)建完第X+1個(gè)存儲(chǔ)區(qū)之后接收到的客戶端的標(biāo)識(shí);刪除單元,用于刪除第X-1個(gè)存儲(chǔ)區(qū);第一返回單元,用于將X的值加1,并返回執(zhí)行判斷距離創(chuàng)建第X個(gè)存儲(chǔ)區(qū)的時(shí)間是否達(dá)到超時(shí)時(shí)間的步驟。
本實(shí)施例中,每隔N秒即超時(shí)時(shí)間創(chuàng)建一個(gè)存儲(chǔ)區(qū),當(dāng)收到客戶端的數(shù)據(jù)時(shí),在最新創(chuàng)建的那個(gè)存儲(chǔ)區(qū)查找或保存客戶端的標(biāo)識(shí)。具體地,當(dāng)?shù)赬+1個(gè)存儲(chǔ)區(qū)創(chuàng)建時(shí),第x-1個(gè)存儲(chǔ)區(qū)就可以整個(gè)清除掉了,所以始終都只需要兩個(gè)存儲(chǔ)區(qū)(即第X個(gè)存儲(chǔ)區(qū)和第X+1個(gè)存儲(chǔ)區(qū))。由于第x-1個(gè)存儲(chǔ)區(qū)內(nèi)的標(biāo)識(shí)一定是N秒前收到的,即已全部超時(shí)了,而如果一個(gè)標(biāo)識(shí)還沒超時(shí),說明它是在最近N秒收到的,它必然出現(xiàn)在第X個(gè)存儲(chǔ)區(qū)或者第X+1個(gè)存儲(chǔ)區(qū)中。
本實(shí)施例中,在計(jì)算當(dāng)前時(shí)刻的在線收視數(shù)時(shí),可以將當(dāng)前時(shí)刻的第X個(gè)存儲(chǔ)區(qū)和第X+1個(gè)存儲(chǔ)區(qū)中存儲(chǔ)的客戶端的標(biāo)識(shí)的數(shù)量作為當(dāng)前時(shí)刻的實(shí)時(shí)在線收視數(shù)。這樣,無需遍歷查詢存儲(chǔ)的所有客戶端的標(biāo)識(shí)是否超時(shí),由于遍歷查詢會(huì)占用大量的服務(wù)器資源,本實(shí)施例則能夠在不占用大量的服務(wù)器資源的情況下,提高統(tǒng)計(jì)結(jié)果的準(zhǔn)確性。
優(yōu)選地,裝置還包括:第三判斷單元,用于判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端 的標(biāo)識(shí)的時(shí)間是否達(dá)到超時(shí)時(shí)間;第二清除單元,用于當(dāng)判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端的標(biāo)識(shí)的時(shí)間達(dá)到超時(shí)時(shí)間時(shí),清除上一個(gè)存儲(chǔ)區(qū)存儲(chǔ)的標(biāo)識(shí),將在此之后接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到上一個(gè)存儲(chǔ)區(qū)中,當(dāng)前存儲(chǔ)區(qū)和上一存儲(chǔ)區(qū)為預(yù)置的兩個(gè)存儲(chǔ)區(qū);第二返回單元,用于將上一個(gè)存儲(chǔ)區(qū)作為當(dāng)前存儲(chǔ)區(qū),將另一存儲(chǔ)區(qū)作為上一存儲(chǔ)區(qū),返回執(zhí)行判斷距離當(dāng)前存儲(chǔ)區(qū)開始存儲(chǔ)客戶端的標(biāo)識(shí)的時(shí)間是否達(dá)到超時(shí)時(shí)間的步驟。
本申請實(shí)施例中,還可以是在只建立兩個(gè)存儲(chǔ)區(qū)的情況下,及時(shí)清除已超時(shí)的客戶端的標(biāo)識(shí)。具體地,在第一存儲(chǔ)區(qū)(當(dāng)前存儲(chǔ)區(qū))的開始存儲(chǔ)標(biāo)識(shí)超過超時(shí)時(shí)間時(shí),清除第二存儲(chǔ)區(qū)(上一個(gè)存儲(chǔ)區(qū))的數(shù)據(jù),并將后續(xù)接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到該清除后的第二存儲(chǔ)區(qū),在又經(jīng)過一個(gè)超時(shí)時(shí)間之后,則第二存儲(chǔ)區(qū)開始存儲(chǔ)標(biāo)識(shí)的時(shí)間達(dá)到超時(shí)時(shí)間,清除第一存儲(chǔ)區(qū)的數(shù)據(jù),并將后續(xù)接收到的客戶端的標(biāo)識(shí)存儲(chǔ)到該清除后的第一存儲(chǔ)區(qū),如此反復(fù)利用第一存儲(chǔ)區(qū)和第二存儲(chǔ)區(qū)。這樣,無需每隔一個(gè)超時(shí)時(shí)間創(chuàng)建一個(gè)存儲(chǔ)區(qū)。
可選地,數(shù)據(jù)還攜帶有客戶端播放的視頻資源的標(biāo)識(shí),裝置還包括:統(tǒng)計(jì)單元,用于對在當(dāng)前時(shí)刻播放相同視頻資源的客戶端的標(biāo)識(shí)的數(shù)量進(jìn)行統(tǒng)計(jì)。
本申請實(shí)施例中,客戶端向服務(wù)器發(fā)送的數(shù)據(jù)還可以攜帶有該客戶端所播放的視頻資源的標(biāo)識(shí),以便于服務(wù)器識(shí)別出相同的視頻資源,這樣,服務(wù)器則可以對當(dāng)前時(shí)刻的播放相同視頻的收視數(shù)進(jìn)行統(tǒng)計(jì),或者分別對各個(gè)視頻資源的播放收視數(shù)進(jìn)行統(tǒng)計(jì)計(jì)算。例如,在需要統(tǒng)計(jì)當(dāng)前時(shí)刻播放目標(biāo)視頻A的收視數(shù)時(shí),服務(wù)器可以根據(jù)接收到客戶端的數(shù)據(jù)中攜帶的視頻資源的標(biāo)識(shí)識(shí)別出與目標(biāo)視頻A對應(yīng)的標(biāo)識(shí),統(tǒng)計(jì)出具有其相應(yīng)的客戶端的標(biāo)識(shí)的數(shù)量,從而得到當(dāng)前時(shí)刻播放目標(biāo)視頻A的收視數(shù)。
上述本申請實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請的上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本申請的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。