專利名稱:實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)傳輸技術(shù),更具體地說,涉及一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法及其系統(tǒng)。
背景技術(shù):
作為一種嶄新的傳播渠道,網(wǎng)絡(luò)直播有極強(qiáng)的現(xiàn)場(chǎng)感和交互性,給用戶帶來一種全新的交流模式。網(wǎng)絡(luò)直播承載著網(wǎng)絡(luò)的特性打破了地域的界限,具有極為廣泛的傳播面。通過網(wǎng)絡(luò),幾十萬人可以同時(shí)交流和互動(dòng),對(duì)受眾的吸引力自然也會(huì)更大。網(wǎng)絡(luò)直播實(shí)時(shí)性、互動(dòng)性及豐富多彩的音、視頻多媒體的特性帶給用戶全新的網(wǎng)絡(luò)視角和體驗(yàn),多媒體網(wǎng)絡(luò)直播服務(wù)的形式主要包括現(xiàn)場(chǎng)直播、嘉賓主持論壇、遠(yuǎn)程在線訪談、網(wǎng)絡(luò)發(fā)布會(huì)等。
目前的網(wǎng)絡(luò)直播一般是通過客戶端主動(dòng)從服務(wù)器上拉取數(shù)據(jù)來實(shí)現(xiàn)的,即通過不斷刷新的方式,但每一次刷新,都會(huì)造成客戶端的瀏覽器與服務(wù)器的連接斷開,然后又重新連接。
由于客戶端需要每隔幾秒又重新到服務(wù)器拉取數(shù)據(jù),在數(shù)據(jù)量小或用戶不多的情況下,并沒有什么問題,但如果當(dāng)用戶成倍增長(zhǎng),數(shù)據(jù)量極度膨脹時(shí),這樣就會(huì)因?yàn)榇罅揩@取重復(fù)數(shù)據(jù),造成網(wǎng)絡(luò)占用率高,網(wǎng)速過慢,無法達(dá)到大規(guī)模直播的需要。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述網(wǎng)絡(luò)占用率高、無法達(dá)到大規(guī)模網(wǎng)絡(luò)直播的缺陷,提供一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法及其系統(tǒng),有效地降低網(wǎng)絡(luò)占用率并節(jié)約服務(wù)器資源。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法,該方法包括以下步驟a.負(fù)載均衡服務(wù)器接收到客戶端的請(qǐng)求后,將該用戶請(qǐng)求定位到直播服務(wù)器上;b.所述客戶端獲得由所述直播服務(wù)器返回的直播頁面后,并獲得由所述直播服務(wù)器分配的邏輯房間;以及c.通過所述直播頁面內(nèi)嵌的腳本程序?qū)⒅辈ハ@示在瀏覽器上。
在本發(fā)明所述的方法中,所述步驟a包括所述負(fù)載均衡服務(wù)器將所有直播服務(wù)器的網(wǎng)址及用戶請(qǐng)求保存在共享內(nèi)存中,并通過采用取模策略將新來的用戶請(qǐng)求依次重定向到具體一臺(tái)直播服務(wù)器上。
在本發(fā)明所述的方法中,所述取模策略是指將用戶請(qǐng)求數(shù)與所述直播服務(wù)器總數(shù)取模得到所述具體一臺(tái)直播服務(wù)器的序號(hào)。
在本發(fā)明所述的方法中,所述步驟b包括將用戶登錄的基本信息通過中心控制管理服務(wù)器發(fā)送給管理服務(wù)器,并由所述管理服務(wù)器將邏輯房間配置信息通過所述中心控制管理服務(wù)器發(fā)送給所述直播服務(wù)器;所述管理服務(wù)器將直播消息通過所述中心控制管理服務(wù)器發(fā)送給所述直播服務(wù)器,并由所述直播服務(wù)器將所述直播消息向所述客戶端發(fā)送。
在本發(fā)明所述的方法中,所述直播頁面通過直播消息顯示頁面與網(wǎng)友聊天信息顯示頁面進(jìn)行顯示,所述直播消息顯示頁面與所述網(wǎng)友消息顯示頁面都是本地頁面。
在本發(fā)明所述的方法中,所述步驟b還包括根據(jù)http協(xié)議,所述客戶端的瀏覽器與所述直播服務(wù)器建立直播消息顯示頁面的長(zhǎng)連接,并由所述直播服務(wù)器通過所述長(zhǎng)連接將直播消息實(shí)時(shí)向所述客戶端發(fā)送;根據(jù)http協(xié)議,所述直播服務(wù)器接收到用戶需要獲取一個(gè)頁面的請(qǐng)求或接收到用戶提交的聊天信息時(shí),就與所述客戶端的瀏覽器建立短連接。
在本發(fā)明所述的方法中,所述長(zhǎng)連接是指獲取所述直播頁面后,所述瀏覽器并不會(huì)關(guān)閉與所述直播服務(wù)器的連接,如果有新的直播消息到達(dá)所述直播服務(wù)器,所述直播服務(wù)器就會(huì)將直播消息通過所述長(zhǎng)連接的直播頁面直接發(fā)送給用戶。
在本發(fā)明所述的方法中,所述短連接是指所述直播服務(wù)器處理完所述頁面的請(qǐng)求或所述聊天消息,就會(huì)關(guān)閉與所述瀏覽器的連接。
在本發(fā)明所述的方法中,所述步驟c包括當(dāng)所述客戶端接收到由所述直播服務(wù)器發(fā)來的直播消息,所述瀏覽器就會(huì)執(zhí)行內(nèi)嵌于所述直播頁面的腳本程序,從而實(shí)現(xiàn)直播消息的顯示。
一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的系統(tǒng),包括直播服務(wù)器,用于處理客戶端的連接與用戶登錄請(qǐng)求,接收與響應(yīng)客戶端的聊天消息,并向客戶端轉(zhuǎn)發(fā)直播頁面與直播消息;負(fù)載均衡服務(wù)器,用于保存所述直播服務(wù)器的負(fù)載記錄,并根據(jù)該記錄對(duì)用戶請(qǐng)求進(jìn)行重定向;中心控制管理服務(wù)器,用于向所述直播服務(wù)器轉(zhuǎn)發(fā)消息;管理服務(wù)器,用于配置或修改邏輯房間信息、錄入訪談內(nèi)容以及統(tǒng)計(jì)在線用戶請(qǐng)求,并通過所述中心控制管理服務(wù)器向所述直播服務(wù)器下發(fā)直播消息。
本發(fā)明的有益效果是,實(shí)現(xiàn)大容量(如10萬級(jí))的用戶在線觀看直播,并提供交互的功能,并通過增加服務(wù)器,系統(tǒng)很容易擴(kuò)展,適用于不同的需求,具體有(1)采用linux系統(tǒng)的Epoll模式增加服務(wù)器的處理能力;(2)采用多線程處理用戶請(qǐng)求,相關(guān)線程只需處理自己所負(fù)責(zé)業(yè)務(wù)流程的數(shù)據(jù);(3)單個(gè)線程處理多個(gè)http請(qǐng)求,減少進(jìn)程切換,提高系統(tǒng)性能;(4)采用內(nèi)存預(yù)分配,整個(gè)服務(wù)器運(yùn)行中不釋放內(nèi)存,避免內(nèi)存泄漏,減少內(nèi)存碎片,無需花費(fèi)申請(qǐng)內(nèi)存的CPU時(shí)間;(5)直播頁面采用全cache(緩存)或預(yù)處理機(jī)制,加快http請(qǐng)求處理。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是本發(fā)明的整體實(shí)現(xiàn)方案的示例圖;圖2是本發(fā)明分配邏輯房間的實(shí)例圖;圖3是本發(fā)明的直播服務(wù)器內(nèi)存的頁面集的實(shí)例圖;圖4是本發(fā)明的HTTP請(qǐng)求處理的流程圖;圖5是本發(fā)明的具體實(shí)施例的服務(wù)器部署結(jié)構(gòu)圖。
具體實(shí)施方式如圖1所示,一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的系統(tǒng),包括直播服務(wù)器,用于處理客戶端的連接與用戶登錄請(qǐng)求,接收與響應(yīng)客戶端的聊天消息,并向客戶端轉(zhuǎn)發(fā)直播頁面與直播消息;負(fù)載均衡服務(wù)器,用于保存所述直播服務(wù)器的負(fù)載記錄,并根據(jù)該記錄對(duì)用戶請(qǐng)求進(jìn)行重定向;中心控制管理服務(wù)器,用于向所述直播服務(wù)器轉(zhuǎn)發(fā)消息;管理服務(wù)器,用于配置或修改邏輯房間信息、錄入訪談內(nèi)容以及統(tǒng)計(jì)在線用戶請(qǐng)求數(shù),并通過所述中心控制管理服務(wù)器向所述直播服務(wù)器下發(fā)直播消息。
負(fù)載均衡服務(wù)器將接收到的用戶請(qǐng)求后,將所有直播服務(wù)器的網(wǎng)址及用戶請(qǐng)求保存在共享內(nèi)存中,并通過采用取模策略將新來的用戶請(qǐng)求依次重定向到直播服務(wù)器中,即將新來的用戶請(qǐng)求依次重定向到共享內(nèi)存中的某一臺(tái)直播服務(wù)器上,取模策略是指將用戶請(qǐng)求數(shù)與直播服務(wù)器總數(shù)取模得到某臺(tái)具體服務(wù)器的序號(hào),也就是說請(qǐng)求數(shù)%直播服務(wù)器總數(shù)=某臺(tái)具體服務(wù)器的序號(hào),假如有5臺(tái)直播服務(wù)器,那么通過采用取模策略得出的結(jié)果可表示為用戶請(qǐng)求1->直播服務(wù)器1;用戶請(qǐng)求2->直播服務(wù)器2;用戶請(qǐng)求3->直播服務(wù)器3;用戶請(qǐng)求4->直播服務(wù)器4;
用戶請(qǐng)求5->直播服務(wù)器5;用戶請(qǐng)求6->直播服務(wù)器1;……當(dāng)定位到某臺(tái)具體的直播服務(wù)器后,直播服務(wù)器就可以與用戶進(jìn)行交互。
直播服務(wù)器根據(jù)用戶的請(qǐng)求先將直播頁面的框架發(fā)送給客戶端,客戶端通過瀏覽器就可以分別獲取到頁面框架里面的頁面(內(nèi)容),因?yàn)橐粋€(gè)完整的直播頁面主要由直播消息顯示頁面與網(wǎng)友聊天信息顯示頁面兩大塊組成的,直播消息顯示頁面與網(wǎng)友消息顯示頁面都是本地頁面。當(dāng)客戶端獲取到由直播服務(wù)器返回的直播頁面后,也獲得了由管理服務(wù)器將配置房間信息通過中心控制管理服務(wù)器發(fā)送給直播服務(wù)器,并由直播服務(wù)器根據(jù)該配置房間信息分配的邏輯房間。直播服務(wù)器按以下方法來實(shí)現(xiàn)分配邏輯房間的。
如圖2所示,直播服務(wù)器首先根據(jù)用戶請(qǐng)求的信息確定用戶請(qǐng)求的直播ID,查找直播的相關(guān)房間,如果該直播沒有房間,或所有房間已滿,則創(chuàng)建一個(gè)房間,如果有房間并且沒滿,則增加該用戶的長(zhǎng)連接句柄到房間的句柄集合中(例如,直播1房間1長(zhǎng)連接句柄集合,直播1房間2長(zhǎng)連接句柄集合,直播1房間3長(zhǎng)連接句柄集合…直播2房間1長(zhǎng)連接句柄集合等等),這樣會(huì)便于在房間內(nèi)群發(fā)消息,并設(shè)置用戶信息中的房間屬性,表明用戶在哪個(gè)房間。
由上述可知,當(dāng)客戶端獲取到由直播服務(wù)器返回的直播頁面后,客戶端的瀏覽器與直播服務(wù)器就會(huì)建立直播消息顯示頁面的長(zhǎng)連接,直播服務(wù)器通過該長(zhǎng)連接將直播消息向客戶端的直播消息顯示頁面實(shí)時(shí)發(fā)送。這樣就形成了一個(gè)沒有下載完成的頁面,直播服務(wù)器端只有發(fā)送直播消息,客戶端實(shí)時(shí)接收直播消息。
上述長(zhǎng)連接是指客戶端獲取了直播頁面后,只要用戶不主動(dòng)去刷新瀏覽器,瀏覽器是不會(huì)關(guān)閉與直播服務(wù)器的連接,如果有新的直播消息,直播消息會(huì)通過該長(zhǎng)連接的直播頁面直接發(fā)送到客戶端。
如圖3所示,直播服務(wù)器對(duì)普通靜態(tài)頁面的處理請(qǐng)求為將每個(gè)直播的相關(guān)的一組靜態(tài)頁面存儲(chǔ)在內(nèi)存中,當(dāng)接收到用戶請(qǐng)求后,按照請(qǐng)求需要獲得文件名及訪談名稱,直播服務(wù)器就查找相關(guān)的頁面。假如請(qǐng)求為“GET/chat_top.html?test”,需要獲取服務(wù)器上的test訪談的chat_top.html頁面,每個(gè)訪談都可以有數(shù)個(gè)頁面(即直播頁面集),每個(gè)直播頁面集包括有file1 file2 file3…fileN個(gè)文件。這些頁面都通過頁面模板及配置信息生成。全部緩存在直播服務(wù)器的內(nèi)存中,以提高訪問速度。
直播服務(wù)器接收到用戶需要獲取一個(gè)頁面的請(qǐng)求或接收到用戶提交的聊天信息時(shí),就與所述客戶端的瀏覽器建立短連接。網(wǎng)友聊天信息顯示區(qū)的頁面為本地頁面,由直播服務(wù)器將聊天信息通過直播頁面發(fā)送給當(dāng)前邏輯房間內(nèi)的每個(gè)用戶,即直播服務(wù)器將嘉賓、主持人發(fā)言(訪談內(nèi)容)通過直播頁面發(fā)送給當(dāng)前邏輯房間(也稱為聊天室)內(nèi)的每個(gè)用戶。短連接是指每次獲取聊天信息顯示頁面后,瀏覽器都需要刷新一次,這樣瀏覽器就關(guān)閉與所述直播服務(wù)器的連接,然后再重新連接。例如用戶發(fā)言屬于短連接。用戶可以以匿名登陸或注冊(cè)登陸的方式在聊天室里面發(fā)言。下面先以直播服務(wù)器對(duì)用戶匿名登陸的處理流程進(jìn)行說明。
如圖4所示,當(dāng)用戶提交如下請(qǐng)求“GET/chatcom.html?test HTTP/1.1.”就可獲取直播消息頁面,如果提交的請(qǐng)求中不帶cookie信息(cookie信息是當(dāng)你訪問某個(gè)站點(diǎn)時(shí),隨某個(gè)HTML網(wǎng)頁發(fā)送到客戶端瀏覽器中的一小段信息),表明用戶進(jìn)行匿名登陸。
直播服務(wù)器首先獲取用戶需要得到的訪談名稱,以上面的例子來說就是test,并將用戶分配到一個(gè)具體的房間里(因?yàn)橛脩裟涿顷懓l(fā)言,需要在刷新聊天信息顯示頁面,這時(shí)客戶端的瀏覽器與直播服務(wù)器的連接就會(huì)斷開,直播服務(wù)器就得重新分配了邏輯房間),并返回http相應(yīng)的頭部,將http頭部的Connection的字段設(shè)置為Keep-Alive屬性(Keep-Alive是http協(xié)議的一個(gè)屬性,可以提供http的持續(xù)作用功能)。上述Connecton字段的Keep-Alive屬性保證了和客戶端的長(zhǎng)連接。保證了該頁面一直在下載態(tài),這樣只要有新的消息添加到直播頁面的尾部,瀏覽器就可立即收到了新的消息。然后,設(shè)置用戶的臨時(shí)cookie,該cookie包含了為用戶生成了一個(gè)隨機(jī)用戶ID與用戶序號(hào)(用戶ID與用戶序號(hào)用來表示用戶信息在服務(wù)器上存儲(chǔ)的內(nèi)存下標(biāo))。最后,以javascript腳本的模式向客戶端返回已經(jīng)進(jìn)行過的聊天信息,如果等待有新的直播消息,就繼續(xù)推送(push)給用戶。下面以直播服務(wù)器對(duì)用戶登陸的處理流程進(jìn)行說明。
當(dāng)用戶提交如下請(qǐng)求“GET/chatcom.html?test HTTP/1.1.”,就可獲取直播消息頁面,如果提交的請(qǐng)求中附帶cookie信息,表明用戶進(jìn)行注冊(cè)登陸。
直播服務(wù)器首先獲取用戶需要得到的訪談名稱,以上面的例子來說就是test。并獲取用戶cookie,從用戶cookie獲取sessionkey進(jìn)行交驗(yàn),再設(shè)置用戶信息,將用戶分配到一個(gè)具體的房間里(因?yàn)樽?cè)用戶登陸,需要在刷新聊天信息顯示頁面,這時(shí)客戶端的瀏覽器與直播服務(wù)器建立的連接就會(huì)斷開,直播服務(wù)器就得重新分配了邏輯房間),并返回http相應(yīng)的頭部,將頭部的Connection字段設(shè)置為Keep-Alive,以保證和用戶的長(zhǎng)連接。然后,設(shè)置用戶的cookie,該cookie包含了用戶ID、昵稱與用戶序號(hào)(用戶ID、昵稱與用戶序號(hào)用來表示用戶信息在服務(wù)器上存儲(chǔ)的內(nèi)存下標(biāo))。最后,以javascript腳本的模式返回已經(jīng)進(jìn)行過的聊天信息,如果等待有新的直播消息,就繼續(xù)推送(push)給用戶。下面以直播服務(wù)器對(duì)用戶在網(wǎng)友聊天信息顯示頁面(聊天室)進(jìn)行發(fā)言的處理流程進(jìn)行說明。
用戶可以以匿名登陸或注冊(cè)登陸的方式在聊天室里面進(jìn)行發(fā)言。用戶在所分配的邏輯房間(可稱為聊天室)里的發(fā)言只在當(dāng)前邏輯房間有效,嘉賓、主持人發(fā)言對(duì)所有房間(本訪談)都有效。這里所述的邏輯房間對(duì)用戶是透明的,用戶不需要知道自己所在的房間,因?yàn)檫@個(gè)是由直播服務(wù)器分配的,如果當(dāng)前房間已經(jīng)滿了,那么直播服務(wù)器則重新創(chuàng)建一個(gè)房間。一個(gè)房間在一臺(tái)直播服務(wù)器上,不存在一個(gè)房間分別在兩個(gè)直播服務(wù)器上的情況。
當(dāng)用戶在進(jìn)行發(fā)言時(shí),即提交聊天信息,用戶可以使用http協(xié)議中的Post模式來提交信息,用戶首先以Post模式將發(fā)言信息與用戶的基本信息(如用戶ID、昵稱與用戶序號(hào)等等)提交到直播服務(wù)器,例如可表示為“POST/TalkHTTP/1.1”。該類請(qǐng)求不需要直播服務(wù)器響應(yīng),直播服務(wù)端在收到該消息后即可關(guān)閉連接。當(dāng)直播服務(wù)器獲取到用戶的cookie信息,就會(huì)根據(jù)用戶的基本信息去判斷該用戶的合法型,如果合法,則從用戶以Post模式提交的發(fā)言信息與用戶的基本信息中,提取相關(guān)的聊天信息,并定位用戶所在的邏輯房間,然后通過該邏輯房間內(nèi)每個(gè)用戶的長(zhǎng)連接句柄,在該房間內(nèi)轉(zhuǎn)發(fā)信息。
所述管理服務(wù)器將錄入的訪談內(nèi)容等直播消息通過所述中心控制管理服務(wù)器發(fā)送給所述直播服務(wù)器,并由所述直播服務(wù)器向所述客戶端發(fā)送。這樣在客戶端的直播消息顯示頁面與網(wǎng)友聊天信息顯示頁面就可以實(shí)時(shí)顯示。該顯示是通過所述直播頁面上內(nèi)嵌的腳本程序來實(shí)現(xiàn)的。
由上述可知,客戶端瀏覽器顯示的直播頁面分為兩部分直播消息顯示頁面與網(wǎng)友聊天信息顯示頁面。直播消息包括顯示頁面顯示嘉賓訪談或體育直播的消息(附帶音視頻的),也包括在網(wǎng)友聊天信息顯示頁面所顯示的網(wǎng)友聊天的信息以及嘉賓訪談的文字信息,直播頁面通過調(diào)用不同的函數(shù)將消息顯示到這兩個(gè)個(gè)區(qū)域。直播信息以如下的腳本方式發(fā)送到客戶端,腳本程序可表示為<script language=j(luò)avascript>parent.addTalkMsg( );</script>需要說明的是,直播頁面是隱藏的,它的功能就是負(fù)責(zé)接收直播服務(wù)器發(fā)來的消息,并不負(fù)責(zé)消息的顯示。但可以由一個(gè)單獨(dú)的顯示頁面來實(shí)現(xiàn),該頁面是直播頁面的父頁面。顯示頁面上實(shí)現(xiàn)了addTalkMsg等函數(shù)。這樣直播消息頁面收到如<script language=j(luò)avascript>parent.addTalkMsg之類的腳本,將執(zhí)行其父頁面(負(fù)責(zé)顯示信息的頁面)的addTalkMsg函數(shù)。并通過document.write的方式將信息寫到頁面上。
采取以上的技術(shù)方案,就可以實(shí)現(xiàn)單機(jī)支持20000個(gè)用戶同時(shí)上線的網(wǎng)絡(luò)直播,設(shè)定有5臺(tái)單機(jī),那么就可以實(shí)現(xiàn)支持10萬級(jí)大容量用戶同時(shí)上線,服務(wù)器的部署可以采取如圖5所示的結(jié)構(gòu)。由于北方是通過網(wǎng)通來上網(wǎng),南方通過電信來上網(wǎng),可以將直播服務(wù)器的南北網(wǎng)絡(luò)分開,聊天室系統(tǒng)可以采用一個(gè)樹型可擴(kuò)充的體系結(jié)構(gòu)。
權(quán)利要求
1.一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法,其特征在于,包括以下步驟a.負(fù)載均衡服務(wù)器接收到客戶端的請(qǐng)求后,將該用戶請(qǐng)求定位到直播服務(wù)器上;b.所述客戶端獲得由所述直播服務(wù)器返回的直播頁面后,并獲得由所述直播服務(wù)器分配的邏輯房間;以及c.通過所述直播頁面內(nèi)嵌的腳本程序?qū)⒅辈ハ@示在瀏覽器上。
2.根據(jù)權(quán)利要求
1所述的方法,其特征在于,所述步驟a包括所述負(fù)載均衡服務(wù)器將所有直播服務(wù)器的網(wǎng)址及用戶請(qǐng)求保存在共享內(nèi)存中,并通過采用取模策略將新來的用戶請(qǐng)求依次重定向到具體一臺(tái)直播服務(wù)器上。
3.根據(jù)權(quán)利要求
2所述的方法,其特征在于,所述取模策略是指將用戶請(qǐng)求數(shù)與所述直播服務(wù)器總數(shù)取模得到所述具體一臺(tái)直播服務(wù)器的序號(hào)。
4.根據(jù)權(quán)利要求
1所述的方法,其特征在于,所述步驟b包括將用戶登錄的基本信息通過中心控制管理服務(wù)器發(fā)送給管理服務(wù)器,并由所述管理服務(wù)器將邏輯房間配置信息通過所述中心控制管理服務(wù)器發(fā)送給所述直播服務(wù)器;所述管理服務(wù)器將直播消息通過所述中心控制管理服務(wù)器發(fā)送給所述直播服務(wù)器,并由所述直播服務(wù)器將所述直播消息向所述客戶端發(fā)送。
5.根據(jù)權(quán)利要求
1或4所述的方法,其特征在于,所述直播頁面通過直播消息顯示頁面與網(wǎng)友聊天信息顯示頁面進(jìn)行顯示,所述直播消息顯示頁面與所述網(wǎng)友消息顯示頁面都是本地頁面。
6.根據(jù)權(quán)利要求
5所述的方法,其特征在于,所述步驟b還包括根據(jù)http協(xié)議,所述客戶端的瀏覽器與所述直播服務(wù)器建立直播消息顯示頁面的長(zhǎng)連接,并由所述直播服務(wù)器通過所述長(zhǎng)連接將直播消息實(shí)時(shí)向所述客戶端發(fā)送;根據(jù)http協(xié)議,所述直播服務(wù)器接收到用戶需要獲取一個(gè)頁面的請(qǐng)求或接收到用戶提交的聊天信息時(shí),就與所述客戶端的瀏覽器建立短連接。
7.根據(jù)權(quán)利要求
6所述的方法,其特征在于,所述長(zhǎng)連接是指獲取所述直播頁面后,所述瀏覽器并不會(huì)關(guān)閉與所述直播服務(wù)器的連接,如果有新的直播消息到達(dá)所述直播服務(wù)器,所述直播服務(wù)器就會(huì)將直播消息通過所述長(zhǎng)連接的直播頁面直接發(fā)送給用戶。
8.根據(jù)權(quán)利要求
6所述的方法,其特征在于,所述短連接是指所述直播服務(wù)器處理完所述頁面的請(qǐng)求或所述聊天消息,就會(huì)關(guān)閉與所述瀏覽器的連接。
9.根據(jù)權(quán)利要求
7或8所述的方法,其特征在于,所述步驟c包括當(dāng)所述客戶端接收到由所述直播服務(wù)器發(fā)來的直播消息,所述瀏覽器就會(huì)執(zhí)行內(nèi)嵌于所述直播頁面的腳本程序,從而實(shí)現(xiàn)直播消息的顯示。
10.一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的系統(tǒng),其特征在于,包括直播服務(wù)器,用于處理客戶端的連接與用戶登錄請(qǐng)求,接收與響應(yīng)客戶端的聊天消息,并向客戶端轉(zhuǎn)發(fā)直播頁面與直播消息;負(fù)載均衡服務(wù)器,用于保存所述直播服務(wù)器的負(fù)載記錄,并根據(jù)該記錄對(duì)用戶請(qǐng)求進(jìn)行重定向;中心控制管理服務(wù)器,用于向所述直播服務(wù)器轉(zhuǎn)發(fā)消息;管理服務(wù)器,用于配置或修改邏輯房間信息、錄入訪談內(nèi)容以及統(tǒng)計(jì)在線用戶請(qǐng)求,并通過所述中心控制管理服務(wù)器向所述直播服務(wù)器下發(fā)直播消息。
專利摘要
本發(fā)明涉及一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的方法,其特征在于,包括以下步驟a.負(fù)載均衡服務(wù)器接收到客戶端的請(qǐng)求后,將該用戶請(qǐng)求定位到直播服務(wù)器上;b.所述客戶端獲得由所述直播服務(wù)器返回的直播頁面后,并獲得由所述直播服務(wù)器分配的邏輯房間;以及c.通過所述直播頁面內(nèi)嵌的腳本程序?qū)⒅辈ハ@示在瀏覽器上。本發(fā)明還同時(shí)公開了一種實(shí)現(xiàn)大容量網(wǎng)絡(luò)直播的系統(tǒng)。本發(fā)明實(shí)現(xiàn)10萬級(jí)的大容量用戶在線觀看直播,并提供交互的功能,并通過增加服務(wù)器,系統(tǒng)很容易擴(kuò)展,適用于不同的需求。
文檔編號(hào)H04L12/18GK1992621SQ200510121375
公開日2007年7月4日 申請(qǐng)日期2005年12月27日
發(fā)明者吳雙, 劉鵬 申請(qǐng)人:騰訊科技(深圳)有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan