本發(fā)明涉及視頻直播技術(shù)領(lǐng)域,特別涉及一種直播服務(wù)器切換方法、系統(tǒng)及客戶端。
背景技術(shù):
隨著4G時(shí)代的來(lái)臨,互聯(lián)網(wǎng)音視頻直播服務(wù)也越來(lái)越火,大量的用戶很快就會(huì)撐滿直播服務(wù)器。為了滿足火爆的業(yè)務(wù)需求,現(xiàn)在的最先進(jìn)的直播服務(wù)器大多采用多臺(tái)機(jī)器分布式構(gòu)架,將用戶分布到不同機(jī)器上去解決單臺(tái)服務(wù)爆滿的問(wèn)題,但在解決了基本的聯(lián)通問(wèn)題后,后續(xù)追求的是提升音視頻的直播質(zhì)量,主要是提升直播服務(wù)器的穩(wěn)定性和媒體數(shù)據(jù)包的流暢性。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)至少存在如下問(wèn)題:
在直播過(guò)程中,網(wǎng)絡(luò)環(huán)境是動(dòng)態(tài)變化的,T0時(shí)刻時(shí),A客戶端連接S1直播服務(wù)器可能是最佳選擇,但是到了T1時(shí)刻時(shí),S1直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量因?yàn)閴毫Υ蠖儾?,或者因?yàn)槭艿焦糁苯硬荒芊?wù)了,那么A客戶端連接S2直播服務(wù)器才是最好的選擇。但是,現(xiàn)有技術(shù)中,客戶端并不能動(dòng)態(tài)感知每個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,且無(wú)法感知到哪臺(tái)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量最佳,客戶端也不能根據(jù)當(dāng)前各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量進(jìn)行實(shí)時(shí)切換,且現(xiàn)有技術(shù)中的客戶端根據(jù)人為選擇切換不同的服務(wù)器并不能做到無(wú)縫切換,導(dǎo)致用戶收聽(tīng)過(guò)程中感到中斷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的是提供一種直播服務(wù)器切換方法、系統(tǒng)及客戶端,使得客戶端能夠動(dòng)態(tài)實(shí)時(shí)感知各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠根據(jù)各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量進(jìn)行動(dòng)態(tài)切換,從而保證客戶端連接的直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠在切換直播服務(wù)器時(shí)實(shí)現(xiàn)無(wú)縫切換,實(shí)用性強(qiáng),適用范圍廣。
根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明的實(shí)施例提供了一種直播服務(wù)器切換方法,應(yīng)用于客戶端,包括:
獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng);
基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
判斷所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;
若所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P,則控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器,其中,備選服務(wù)器集合包括至少一個(gè)備選服務(wù)器。
優(yōu)選地,當(dāng)所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當(dāng)前連接服務(wù)器P時(shí);
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng)的步驟包括:
基于實(shí)時(shí)傳輸控制協(xié)議,向當(dāng)前連接服務(wù)器P發(fā)送發(fā)送端報(bào)告SR;
其中,所述發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào);
優(yōu)選地,接收當(dāng)前連接服務(wù)器P返回的與所述發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR;
其中,接收端報(bào)告RR至少包括:與其自身對(duì)應(yīng)的發(fā)送端報(bào)告SR的發(fā)送時(shí)間、當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng);
優(yōu)選地,其中,當(dāng)前網(wǎng)絡(luò)丟包率,是當(dāng)前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號(hào)和當(dāng)前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號(hào)確定丟包數(shù)量后,計(jì)算得到的;
優(yōu)選地,當(dāng)前網(wǎng)絡(luò)抖動(dòng),是當(dāng)前連接服務(wù)器P基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包接收時(shí)間的差值,計(jì)算得到的;
優(yōu)選地,所述獲取當(dāng)前網(wǎng)絡(luò)延時(shí)的步驟包括:
基于發(fā)送端報(bào)告SR的發(fā)送時(shí)間,和接收到與該發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí)。
優(yōu)選地,當(dāng)客戶端為觀看客戶端時(shí)以接收當(dāng)前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報(bào)告SR時(shí);
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率的步驟包括:
基于發(fā)送端報(bào)告SR中包括的直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號(hào),及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號(hào),確定丟包數(shù)量;
基于丟包數(shù)量和所述發(fā)送數(shù)量,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)丟包率;
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)抖動(dòng)的步驟包括:
基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和觀看客戶端接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)抖動(dòng);
優(yōu)選地,所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)延時(shí)的步驟包括:
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間,和當(dāng)前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí);
優(yōu)選地,其中,播數(shù)據(jù)包和發(fā)送端報(bào)告SR是由直播客戶端發(fā)送至當(dāng)前連接服務(wù)器P的;發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào)。
優(yōu)選地,所述基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP的步驟包括:
基于第一預(yù)設(shè)公式計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
優(yōu)選地,其中,所述第一預(yù)設(shè)公式為:
QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當(dāng)前網(wǎng)絡(luò)丟包率;JITTERP為所述當(dāng)前網(wǎng)絡(luò)抖動(dòng);DELAYP為所述當(dāng)前網(wǎng)絡(luò)延時(shí);a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
優(yōu)選地,在所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器的步驟之前,還包括:
分別獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載和網(wǎng)絡(luò)延時(shí);
基于每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載、網(wǎng)絡(luò)延時(shí)和第二預(yù)設(shè)公式,分別計(jì)算每個(gè)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
優(yōu)選地,其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負(fù)載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時(shí),x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
優(yōu)選地,所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器的步驟包括:
基于每臺(tái)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對(duì)應(yīng)的備選服務(wù)器作為目標(biāo)服務(wù)器;
控制客戶端切換至所述目標(biāo)服務(wù)器。
優(yōu)選地,所述控制客戶端切換至所述目標(biāo)服務(wù)器的步驟包括:
控制客戶端向所述目標(biāo)服務(wù)器發(fā)送連接請(qǐng)求;
在與所述目標(biāo)服務(wù)器連接成功后,以連接成功的時(shí)間為起始時(shí)間進(jìn)行計(jì)時(shí),形成連接時(shí)長(zhǎng);
判斷所述連接時(shí)長(zhǎng)是否達(dá)到預(yù)設(shè)時(shí)長(zhǎng);
若達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則客戶端斷開(kāi)與所述當(dāng)前連接服務(wù)器P的連接;
否則,則所述客戶端同時(shí)連接所述當(dāng)前連接服務(wù)器P和所述目標(biāo)服務(wù)器。
根據(jù)本發(fā)明的又一方面,本發(fā)明的實(shí)施例提供了一種直播服務(wù)器切換系統(tǒng),應(yīng)用于客戶端,包括:
獲取模塊,用于獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng);
計(jì)算模塊,用于基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
控制模塊,用于判斷所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;和,
用于在判斷到所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P時(shí),控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器,其中,備選服務(wù)器集合包括至少一個(gè)備選服務(wù)器。
優(yōu)選地,當(dāng)所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當(dāng)前連接服務(wù)器P時(shí);
所述獲取模塊,還用于基于實(shí)時(shí)傳輸控制協(xié)議,向當(dāng)前連接服務(wù)器P發(fā)送發(fā)送端報(bào)告SR;其中,所述發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào);和,
用于接收當(dāng)前連接服務(wù)器P返回的與所述發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR;
優(yōu)選地,其中,接收端報(bào)告RR至少包括:與其自身對(duì)應(yīng)的發(fā)送端報(bào)告SR的發(fā)送時(shí)間、當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng);
優(yōu)選地,其中,當(dāng)前網(wǎng)絡(luò)丟包率,是當(dāng)前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號(hào)和當(dāng)前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號(hào)確定丟包數(shù)量后,計(jì)算得到的;
優(yōu)選地,當(dāng)前網(wǎng)絡(luò)抖動(dòng),是當(dāng)前連接服務(wù)器P基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包接收時(shí)間的差值,計(jì)算得到的;
優(yōu)選地,其中,所述計(jì)算模塊,還用于基于發(fā)送端報(bào)告SR的發(fā)送時(shí)間,和接收到與該發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí)。
優(yōu)選地,當(dāng)客戶端為觀看客戶端時(shí)以接收當(dāng)前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報(bào)告SR時(shí);
所述計(jì)算模塊,還用于基于發(fā)送端報(bào)告SR中包括的直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號(hào),及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號(hào),確定丟包數(shù)量;和,
用于基于丟包數(shù)量和所述發(fā)送數(shù)量,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)丟包率;和,
用于基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和觀看客戶端接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)抖動(dòng);和,
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間,和當(dāng)前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,計(jì)算獲取近似的當(dāng)前網(wǎng)絡(luò)延時(shí);
優(yōu)選地,其中,播數(shù)據(jù)包和發(fā)送端報(bào)告SR是由直播客戶端發(fā)送至當(dāng)前連接服務(wù)器P的;發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào)。
優(yōu)選地,所述計(jì)算模塊,用于基于第一預(yù)設(shè)公式計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
優(yōu)選地,其中,所述第一預(yù)設(shè)公式為:
QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當(dāng)前網(wǎng)絡(luò)丟包率;JITTERP為所述當(dāng)前網(wǎng)絡(luò)抖動(dòng);DELAYP為所述當(dāng)前網(wǎng)絡(luò)延時(shí);a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
優(yōu)選地,所述獲取模塊,還用于在控制模塊所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器之前,分別獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載和網(wǎng)絡(luò)延時(shí);
所述計(jì)算模塊,還用于基于每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載、網(wǎng)絡(luò)延時(shí)和第二預(yù)設(shè)公式,分別計(jì)算每個(gè)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
優(yōu)選地,其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負(fù)載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時(shí),x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
優(yōu)選地,所述控制模塊,還用于基于每臺(tái)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對(duì)應(yīng)的備選服務(wù)器作為目標(biāo)服務(wù)器;和,
用于控制客戶端切換至所述目標(biāo)服務(wù)器。
優(yōu)選地,所述系統(tǒng)還包括:計(jì)時(shí)模塊;
其中,所述控制模塊,還用于控制客戶端向所述目標(biāo)服務(wù)器發(fā)送連接請(qǐng)求;
所述計(jì)時(shí)模塊,用于在客戶端與所述目標(biāo)服務(wù)器連接成功后,以連接成功的時(shí)間為起始時(shí)間進(jìn)行計(jì)時(shí),形成連接時(shí)長(zhǎng);
所述控制模塊,還用于判斷所述連接時(shí)長(zhǎng)是否達(dá)到預(yù)設(shè)時(shí)長(zhǎng);
若達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則控制客戶端斷開(kāi)與所述當(dāng)前連接服務(wù)器P的連接;
否則,則控制所述客戶端同時(shí)連接所述當(dāng)前連接服務(wù)器P和所述目標(biāo)服務(wù)器。
為了更好地實(shí)現(xiàn)上述技術(shù)方案,本發(fā)明的實(shí)施例還提供了一種客戶端,所述客戶端上設(shè)有包括以上所述的直播服務(wù)器切換系統(tǒng)。
本發(fā)明實(shí)施例提供的直播服務(wù)器切換方法、系統(tǒng)及客戶端,能夠使得客戶端能夠動(dòng)態(tài)實(shí)時(shí)感知各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠根據(jù)各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量進(jìn)行動(dòng)態(tài)切換,從而保證了客戶端連接的直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠在切換直播服務(wù)器時(shí)實(shí)現(xiàn)無(wú)縫切換,實(shí)用性強(qiáng),適用范圍廣。
附圖說(shuō)明
圖1是本發(fā)明第一實(shí)施例提供的直播服務(wù)器切換方法的流程圖;
圖2是本發(fā)明第二實(shí)施例提供的直播服務(wù)器切換系統(tǒng)的模塊結(jié)構(gòu)示意圖。
附圖標(biāo)記說(shuō)明:1-獲取模塊;2-計(jì)算模塊;3-控制模塊;4-計(jì)時(shí)模塊。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合具體實(shí)施方式并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說(shuō)明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
請(qǐng)參閱圖1,圖1是本發(fā)明第一實(shí)施例提供的直播服務(wù)器切換方法的流程圖。
如圖1所示,本發(fā)明的實(shí)施例提供了一種直播服務(wù)器切換方法,應(yīng)用于客戶端,包括:
獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng);
基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
判斷所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;
若所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P,則控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器,其中,備選服務(wù)器集合包括至少一個(gè)備選服務(wù)器。
其中,需要說(shuō)明的是,獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng)的方式是實(shí)時(shí)獲取或每隔預(yù)定時(shí)間獲取的,通過(guò)計(jì)算客戶端當(dāng)前連接的服務(wù)器的網(wǎng)絡(luò)質(zhì)量,可以判斷出當(dāng)前連接服務(wù)器P的網(wǎng)絡(luò)質(zhì)量是否滿足預(yù)定值,也即客戶端可以動(dòng)態(tài)感知其自身連接的服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并在當(dāng)前連接服務(wù)器P的網(wǎng)絡(luò)質(zhì)量不滿足預(yù)定值(也即當(dāng)前連接服務(wù)器P的網(wǎng)絡(luò)質(zhì)量較差)時(shí),切換至網(wǎng)絡(luò)質(zhì)量較好的服務(wù)器,從而保證客戶端連接的服務(wù)器能夠有較佳的網(wǎng)絡(luò)質(zhì)量。
由于同一客戶端處于不同狀態(tài)時(shí),其獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng)的方法存在一定的差別,或者說(shuō),客戶端存在兩種:一種是直播客戶端,一種為觀看客戶端,直播客戶端是產(chǎn)生直播數(shù)據(jù)包的一端,也即主播端或直播端,相當(dāng)于數(shù)據(jù)源;觀看客戶端是播放直播數(shù)據(jù)包的一端,也可理解為觀眾端或接收端或播放端。
當(dāng)所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當(dāng)前連接服務(wù)器P時(shí);也即若客戶端為直播數(shù)據(jù)包的數(shù)據(jù)源時(shí),
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng)的步驟包括:
基于實(shí)時(shí)傳輸控制協(xié)議,向當(dāng)前連接服務(wù)器P發(fā)送發(fā)送端報(bào)告SR;
其中,所述發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào);
接收當(dāng)前連接服務(wù)器P返回的與所述發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR;
其中,接收端報(bào)告RR至少包括:與其自身對(duì)應(yīng)的發(fā)送端報(bào)告SR的發(fā)送時(shí)間、當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng);
其中,當(dāng)前網(wǎng)絡(luò)丟包率,是當(dāng)前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號(hào)和當(dāng)前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號(hào)確定丟包數(shù)量后,計(jì)算得到的;
其中,需要說(shuō)明的是,根據(jù)直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量和各已發(fā)送的直播數(shù)據(jù)包的序列號(hào)和當(dāng)前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號(hào)可以確定哪些序列號(hào)的直播數(shù)據(jù)包在發(fā)送過(guò)程中丟失,以及丟失了幾個(gè)直播數(shù)據(jù)包,因?yàn)樾蛄刑?hào)為連續(xù)標(biāo)號(hào),所以哪些序列號(hào)中斷很容易被查找識(shí)別出來(lái)。
當(dāng)前網(wǎng)絡(luò)抖動(dòng),是當(dāng)前連接服務(wù)器P基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包接收時(shí)間的差值,計(jì)算得到的;也即,直播客戶端發(fā)送了兩個(gè)序列號(hào)連續(xù)的直播數(shù)據(jù)包M1和M2,其直播數(shù)據(jù)包M1的數(shù)據(jù)包發(fā)送時(shí)間為T1,直播數(shù)據(jù)包M2的數(shù)據(jù)包發(fā)送時(shí)間為T2,M1和M2發(fā)送的時(shí)間間隔為T2-T1;那么M1和M2在當(dāng)前連接服務(wù)器P被接收到的時(shí)間分別為T3和T4,那么接收M1和M2的時(shí)間間隔為T4-T3,那么當(dāng)前網(wǎng)絡(luò)抖動(dòng)即為:(T4-T3)-(T2-T1)。
所述獲取當(dāng)前網(wǎng)絡(luò)延時(shí)的步驟包括:
基于發(fā)送端報(bào)告SR的發(fā)送時(shí)間,和接收到與該發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)客戶端為觀看客戶端時(shí)以接收當(dāng)前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報(bào)告SR時(shí);
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率的步驟包括:
基于發(fā)送端報(bào)告SR中包括的直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號(hào),及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號(hào),確定丟包數(shù)量;
基于丟包數(shù)量和所述發(fā)送數(shù)量,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)丟包率;
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)抖動(dòng)的步驟包括:
基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和觀看客戶端接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)抖動(dòng);
所述獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)延時(shí)的步驟包括:
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間,和當(dāng)前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí);
其中,播數(shù)據(jù)包和發(fā)送端報(bào)告SR是由直播客戶端發(fā)送至當(dāng)前連接服務(wù)器P的;發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào)。
所述基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP的步驟包括:
基于第一預(yù)設(shè)公式計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
其中,所述第一預(yù)設(shè)公式為:
QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當(dāng)前網(wǎng)絡(luò)丟包率;JITTERP為所述當(dāng)前網(wǎng)絡(luò)抖動(dòng);DELAYP為所述當(dāng)前網(wǎng)絡(luò)延時(shí);a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
在所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器的步驟之前,還包括:
分別獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載和網(wǎng)絡(luò)延時(shí);其中,需要說(shuō)明的是,獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)延時(shí)的方法是通過(guò)實(shí)時(shí)傳輸控制協(xié)議(RTCP),分別向備選服務(wù)器發(fā)送發(fā)送端報(bào)告SR的方式實(shí)現(xiàn)的,其中,向備選服務(wù)器發(fā)送的發(fā)送端報(bào)告SR包括了該發(fā)送端報(bào)告SR的發(fā)送時(shí)間,備選服務(wù)器接收到發(fā)送端報(bào)告SR后,會(huì)返回一個(gè)對(duì)應(yīng)的接收端報(bào)告RR,接收端報(bào)告RR中包含了與之對(duì)應(yīng)的發(fā)送端報(bào)告SR的發(fā)送時(shí)間,接收端報(bào)告RR中的發(fā)送端報(bào)告SR的發(fā)送時(shí)間是為了客戶端在接收到接收端報(bào)告RR后,能夠?yàn)槊總€(gè)發(fā)送端包SR匹配出于其對(duì)應(yīng)的接收端報(bào)告RR,因?yàn)橥豢蛻舳嗽谕粫r(shí)間點(diǎn),只能發(fā)送一個(gè)發(fā)送端報(bào)告SR,因此,每個(gè)發(fā)送端報(bào)告SR的發(fā)送時(shí)間時(shí)唯一的,所以,備選服務(wù)器在接收到某一發(fā)送端報(bào)告SR并開(kāi)始返回與該某一發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR時(shí),會(huì)將該某一發(fā)送端報(bào)告SR的發(fā)送時(shí)間放入接收端報(bào)告RR中,以使得在客戶端接收到多個(gè)接收端報(bào)告RR時(shí),能夠基于該某一發(fā)送端報(bào)告SR的發(fā)送時(shí)間很快匹配確認(rèn)出哪個(gè)接收端報(bào)告RR才是與該某一發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR。
客戶端在接收到與發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR時(shí),會(huì)記錄該接收端報(bào)告RR的接收時(shí)間,網(wǎng)絡(luò)延時(shí)即為發(fā)送端報(bào)告SR的發(fā)送時(shí)間和與該發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR的接收時(shí)間的時(shí)間差,同時(shí),還需要說(shuō)明的是,由于接收時(shí)間和發(fā)送時(shí)間都是以客戶端這一端的時(shí)間標(biāo)準(zhǔn)參考的,所以可提高網(wǎng)絡(luò)延時(shí)計(jì)算的準(zhǔn)確性。
獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載的方法為:
基于實(shí)時(shí)傳輸控制協(xié)議(RTCP),向每個(gè)備選服務(wù)器發(fā)送用于獲取網(wǎng)絡(luò)負(fù)載的特定應(yīng)用包APP,備選服務(wù)器根據(jù)接收到的特定應(yīng)用包APP將網(wǎng)絡(luò)負(fù)載返回到客戶端。
基于每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載、網(wǎng)絡(luò)延時(shí)和第二預(yù)設(shè)公式,分別計(jì)算每個(gè)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負(fù)載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時(shí),x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
其中,需要說(shuō)明的是,在進(jìn)行服務(wù)器切換時(shí),會(huì)考慮到各個(gè)備選服務(wù)器的網(wǎng)路質(zhì)量,即網(wǎng)絡(luò)延時(shí)和網(wǎng)絡(luò)負(fù)載,由于考慮到了網(wǎng)絡(luò)負(fù)載,可以避免多個(gè)客戶端同時(shí)切換到某一備選服務(wù)器上,而導(dǎo)致該某一備選服務(wù)器突然網(wǎng)絡(luò)質(zhì)量暴跌,從而不能有效實(shí)現(xiàn)服務(wù)器切換。
所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器的步驟包括:
基于每臺(tái)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對(duì)應(yīng)的備選服務(wù)器作為目標(biāo)服務(wù)器;
控制客戶端切換至所述目標(biāo)服務(wù)器。
所述控制客戶端切換至所述目標(biāo)服務(wù)器的步驟包括:
控制客戶端向所述目標(biāo)服務(wù)器發(fā)送連接請(qǐng)求;
在與所述目標(biāo)服務(wù)器連接成功后,以連接成功的時(shí)間為起始時(shí)間進(jìn)行計(jì)時(shí),形成連接時(shí)長(zhǎng);
判斷所述連接時(shí)長(zhǎng)是否達(dá)到預(yù)設(shè)時(shí)長(zhǎng);
若達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則客戶端斷開(kāi)與所述當(dāng)前連接服務(wù)器P的連接;
否則,則所述客戶端同時(shí)連接所述當(dāng)前連接服務(wù)器P和所述目標(biāo)服務(wù)器。
請(qǐng)參照?qǐng)D2,圖2是本發(fā)明實(shí)施例提供的一種直播服務(wù)器切換系統(tǒng)的模塊結(jié)構(gòu)示意圖;
如圖2所示,本發(fā)明的實(shí)施例提供了一種直播服務(wù)器切換系統(tǒng),應(yīng)用于客戶端,包括:
獲取模塊1,用于獲取當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng);
計(jì)算模塊2,用于基于所述當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)延時(shí)以及當(dāng)前網(wǎng)絡(luò)抖動(dòng),計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
控制模塊3,用于判斷所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP是否大于預(yù)定值P;和,
用于在判斷到所述當(dāng)前網(wǎng)絡(luò)質(zhì)量QP大于預(yù)定值P時(shí),控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器,其中,備選服務(wù)器集合包括至少一個(gè)備選服務(wù)器。
當(dāng)所述客戶端為直播客戶端以發(fā)送直播數(shù)據(jù)包至當(dāng)前連接服務(wù)器P時(shí);
所述獲取模塊1,還用于基于實(shí)時(shí)傳輸控制協(xié)議,向當(dāng)前連接服務(wù)器P發(fā)送發(fā)送端報(bào)告SR;其中,所述發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào);和,
用于接收當(dāng)前連接服務(wù)器P返回的與所述發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR;
其中,接收端報(bào)告RR至少包括:與其自身對(duì)應(yīng)的發(fā)送端報(bào)告SR的發(fā)送時(shí)間、當(dāng)前網(wǎng)絡(luò)丟包率、當(dāng)前網(wǎng)絡(luò)抖動(dòng);
其中,當(dāng)前網(wǎng)絡(luò)丟包率,是當(dāng)前連接服務(wù)器P在基于直播客戶端已發(fā)送的直播數(shù)據(jù)包的發(fā)送數(shù)量、各已發(fā)送的直播數(shù)據(jù)包的序列號(hào)和當(dāng)前連接服務(wù)器P自身接收到的各直播數(shù)據(jù)包的序列號(hào)確定丟包數(shù)量后,計(jì)算得到的;
當(dāng)前網(wǎng)絡(luò)抖動(dòng),是當(dāng)前連接服務(wù)器P基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包接收時(shí)間的差值,計(jì)算得到的;
其中,所述計(jì)算模塊2,還用于基于發(fā)送端報(bào)告SR的發(fā)送時(shí)間,和接收到與該發(fā)送端報(bào)告SR對(duì)應(yīng)的接收端報(bào)告RR的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí)。
當(dāng)客戶端為觀看客戶端時(shí)以接收當(dāng)前連接服務(wù)器P轉(zhuǎn)發(fā)的直播數(shù)據(jù)包和發(fā)送端報(bào)告SR時(shí);
所述計(jì)算模塊2,還用于基于發(fā)送端報(bào)告SR中包括的直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,和已發(fā)送的各直播數(shù)據(jù)包的序列號(hào),及觀看客戶端已接收的各直播數(shù)據(jù)包的序列號(hào),確定丟包數(shù)量;和,
用于基于丟包數(shù)量和所述發(fā)送數(shù)量,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)丟包率;和,
用于基于序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,和觀看客戶端接收到該序列號(hào)連續(xù)的兩個(gè)直播數(shù)據(jù)包的接收時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)抖動(dòng);和,
基于最新接收到的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間,和當(dāng)前正播放的直播數(shù)據(jù)包的數(shù)據(jù)包發(fā)送時(shí)間的差值,計(jì)算獲取當(dāng)前網(wǎng)絡(luò)延時(shí);
其中,播數(shù)據(jù)包和發(fā)送端報(bào)告SR是由直播客戶端發(fā)送至當(dāng)前連接服務(wù)器P的;發(fā)送端報(bào)告SR至少包括:發(fā)送端報(bào)告SR的發(fā)送時(shí)間、直播客戶端已發(fā)送至當(dāng)前連接服務(wù)器P的直播數(shù)據(jù)包的發(fā)送數(shù)量,每個(gè)直播數(shù)據(jù)包至少包括:與其自身唯一對(duì)應(yīng)的序列號(hào)及數(shù)據(jù)包發(fā)送時(shí)間,其中直播數(shù)據(jù)包的序列號(hào)為連續(xù)標(biāo)號(hào)。
所述計(jì)算模塊2,用于基于第一預(yù)設(shè)公式計(jì)算當(dāng)前連接服務(wù)器P的當(dāng)前網(wǎng)絡(luò)質(zhì)量QP;
其中,所述第一預(yù)設(shè)公式為:
QP=a*LOSTP+b*JITTERP+c*DELAYP;
LOSTP為所述當(dāng)前網(wǎng)絡(luò)丟包率;JITTERP為所述當(dāng)前網(wǎng)絡(luò)抖動(dòng);DELAYP為所述當(dāng)前網(wǎng)絡(luò)延時(shí);a,b,c分別為預(yù)設(shè)加權(quán)系數(shù)。
所述獲取模塊1,還用于在控制模塊3所述控制客戶端切換至備選服務(wù)器集合中的目標(biāo)服務(wù)器之前,分別獲取備選服務(wù)器集合中的目標(biāo)服務(wù)器中的每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載和網(wǎng)絡(luò)延時(shí);
所述計(jì)算模塊2,還用于基于每個(gè)備選服務(wù)器的網(wǎng)絡(luò)負(fù)載、網(wǎng)絡(luò)延時(shí)和第二預(yù)設(shè)公式,分別計(jì)算每個(gè)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb;
其中,第二預(yù)設(shè)公式為:Qb=x*LOADb+y*DELAYb;
LOADb為備選服務(wù)器的網(wǎng)絡(luò)負(fù)載,DELAYb為備選服務(wù)器的網(wǎng)絡(luò)延時(shí),x,y分別為預(yù)設(shè)加權(quán)系數(shù)。
所述控制模塊3,還用于基于每臺(tái)備選服務(wù)器的備選網(wǎng)絡(luò)質(zhì)量Qb,將備選服務(wù)器集合中與最小的備選網(wǎng)絡(luò)質(zhì)量Qb對(duì)應(yīng)的備選服務(wù)器作為目標(biāo)服務(wù)器;和,
用于控制客戶端切換至所述目標(biāo)服務(wù)器。
所述系統(tǒng)還包括:計(jì)時(shí)模塊4;
其中,所述控制模塊3,還用于控制客戶端向所述目標(biāo)服務(wù)器發(fā)送連接請(qǐng)求;
所述計(jì)時(shí)模塊4,用于在客戶端與所述目標(biāo)服務(wù)器連接成功后,以連接成功的時(shí)間為起始時(shí)間進(jìn)行計(jì)時(shí),形成連接時(shí)長(zhǎng);
所述控制模塊3,還用于判斷所述連接時(shí)長(zhǎng)是否達(dá)到預(yù)設(shè)時(shí)長(zhǎng);
若達(dá)到預(yù)設(shè)時(shí)長(zhǎng),則控制客戶端斷開(kāi)與所述當(dāng)前連接服務(wù)器P的連接;
否則,則控制所述客戶端同時(shí)連接所述當(dāng)前連接服務(wù)器P和所述目標(biāo)服務(wù)器。
本發(fā)明的實(shí)施例還提供了一種客戶端,所述客戶端上設(shè)有包括以上所述的直播服務(wù)器切換系統(tǒng)。
本發(fā)明實(shí)施例提供的直播服務(wù)器切換方法、系統(tǒng)及客戶端,能夠使得客戶端能夠動(dòng)態(tài)實(shí)時(shí)感知各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠根據(jù)各個(gè)直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量進(jìn)行動(dòng)態(tài)切換,從而保證了客戶端連接的直播服務(wù)器的網(wǎng)絡(luò)質(zhì)量,并且能夠在切換直播服務(wù)器時(shí)實(shí)現(xiàn)無(wú)縫切換,實(shí)用性強(qiáng),適用范圍廣。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說(shuō)明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。