專利名稱:網(wǎng)絡(luò)游戲系統(tǒng)以及在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)游戲系統(tǒng)以及在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法。
背景技術(shù):
IP多播(也稱多址廣播或組播)技術(shù),是一種允許一臺或多臺主機(多播源)發(fā)送單一數(shù)據(jù)包到多臺主機(客戶端)的TCP/IP網(wǎng)絡(luò)技術(shù)。多播作為單點對多點的通信,是節(jié)省網(wǎng)絡(luò)帶寬的有效方法之一。在網(wǎng)絡(luò)音頻/視頻廣播的應(yīng)用中,當(dāng)需要將一個節(jié)點的信號傳送到多個節(jié)點時,無論是采用重復(fù)點對點通信方式,還是采用廣播方式,都會嚴重浪費網(wǎng)絡(luò)帶寬,只有多播才是最好的選擇。多播能使一個或多個多播源只把數(shù) 據(jù)包發(fā)送給特定的多播組,而只有加入該多播組的主機才能接收到數(shù)據(jù)包。目前,IP多播技術(shù)被廣泛應(yīng)用在網(wǎng)絡(luò)音頻/視頻廣播、A0D/V0D、網(wǎng)絡(luò)視頻會議、多媒體遠程教育、推送技術(shù)(如新聞或股票行情等)和網(wǎng)絡(luò)游戲等方面?,F(xiàn)有網(wǎng)絡(luò)游戲系統(tǒng)的架構(gòu)如圖I所示。n臺客戶端101 (客戶端I至客戶端n)與連接負載服務(wù)器102建立連接,連接負載服務(wù)器102根據(jù)各個連接服務(wù)器103 (連接服務(wù)器I至連接服務(wù)器m)的負載情況,選擇適當(dāng)?shù)倪B接服務(wù)器103建立客戶端101和業(yè)務(wù)服務(wù)器104之間的數(shù)據(jù)通路。具體地說,連接負載服務(wù)器102給客戶端101分配一個連接服務(wù)器103后,會斷開自身與客戶端101的連接,由客戶端101與連接服務(wù)器103進行連接,此后客戶端101發(fā)往業(yè)務(wù)服務(wù)器104的上行數(shù)據(jù),都由連接服務(wù)器103進行中轉(zhuǎn),而業(yè)務(wù)服務(wù)器104的下行數(shù)據(jù)也經(jīng)由連接服務(wù)器103轉(zhuǎn)發(fā)給客戶端101。在網(wǎng)絡(luò)游戲中,需要頻繁、大量地發(fā)送多播數(shù)據(jù)(比如特定范圍內(nèi)的角色位移、小組內(nèi)信息、場景內(nèi)信息等),對服務(wù)器的網(wǎng)絡(luò)I/o性能來講是關(guān)鍵影響因素之一。而這些多播數(shù)據(jù),多由擔(dān)任著游戲絕大部分功能的業(yè)務(wù)服務(wù)器104進行處理和轉(zhuǎn)發(fā)?,F(xiàn)有網(wǎng)絡(luò)游戲系統(tǒng)采用的多播數(shù)據(jù)的方式多為單一的組內(nèi)多播方式,是由業(yè)務(wù)服務(wù)器104對需求范圍內(nèi)的客戶端101進行統(tǒng)計后,直接將多播數(shù)據(jù)發(fā)送給需求范圍內(nèi)的所有客戶端101。業(yè)務(wù)服務(wù)器是網(wǎng)絡(luò)游戲系統(tǒng)中負荷最重、承擔(dān)功能最多的服務(wù)器。而業(yè)務(wù)邏輯服務(wù)器的網(wǎng)絡(luò)I/o性能,明顯地影響著服務(wù)器對玩家的響應(yīng)速度。游戲的網(wǎng)絡(luò)吞吐量和流暢度,在一定程度上決定了玩家對游戲的持久性。采用現(xiàn)有的方式,業(yè)務(wù)服務(wù)器既要對游戲中的大部分功能邏輯進行計算和處理,還要對多播數(shù)據(jù)進行統(tǒng)計和轉(zhuǎn)發(fā),既使業(yè)務(wù)服務(wù)器的職責(zé)不夠?qū)R?,也進一步加重了業(yè)務(wù)服務(wù)器的負擔(dān)。
發(fā)明內(nèi)容
本發(fā)明提供了一種網(wǎng)絡(luò)游戲系統(tǒng)以及在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法,可以提升業(yè)務(wù)服務(wù)器的數(shù)據(jù)吞吐量。本發(fā)明實施例提供的一種在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法,包括如下步驟A、在多播服務(wù)器存儲多播域的分組信息;
B、業(yè)務(wù)服務(wù)器向多播服務(wù)器發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識;C、多播服務(wù)器根據(jù)所接收的多播通知消息查詢存儲的分組信息,找到多播分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。較佳地,所述業(yè)務(wù)服務(wù)器為網(wǎng)絡(luò)游戲系統(tǒng)中的業(yè)務(wù)服務(wù)器。較佳地,所述多播域的分組信息按照大區(qū)、本線、隊伍、場景或特殊區(qū)域?qū)τ脩暨M行分組。較佳地,該方法進一步包括當(dāng)有組內(nèi)成員發(fā)生變動時,業(yè)務(wù)服務(wù)器通知多播服務(wù)器注冊或注銷多播用戶。本發(fā)明實施例還提供了一種網(wǎng)絡(luò)游戲系統(tǒng),包括業(yè)務(wù)服務(wù)器,該系統(tǒng)還包括多播 服務(wù)器;所述業(yè)務(wù)服務(wù)器在發(fā)生多播事件時,向多播服務(wù)器發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識;所述多播服務(wù)器用于存儲多播域的分組信息;接收來自業(yè)務(wù)服務(wù)器的多播通知消息,根據(jù)所接收的多播通知消息查詢存儲的分組信息,找到多播分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。較佳地,所述多播域的分組信息按照大區(qū)、本線、隊伍、場景或特殊區(qū)域?qū)τ脩暨M行分組。較佳地,當(dāng)有組內(nèi)成員發(fā)生變動時,所述業(yè)務(wù)服務(wù)器通知多播服務(wù)器注冊或注銷多播用戶。從以上技術(shù)方案可以看出,將多播業(yè)務(wù)從業(yè)務(wù)服務(wù)器中分離,由專門的多播服務(wù)器存儲多播域的分組信息,并根據(jù)業(yè)務(wù)服務(wù)器的通知,查找到相應(yīng)的多播組并發(fā)送多播數(shù)據(jù)。本發(fā)明方案避免了多播業(yè)務(wù)對業(yè)務(wù)服務(wù)器網(wǎng)絡(luò)帶寬的占用,可以提升業(yè)務(wù)服務(wù)器的網(wǎng)絡(luò)吞吐量和流暢度。本發(fā)明方案尤其適用于多人在線的網(wǎng)絡(luò)游戲系統(tǒng),對提升用戶體驗、游戲的流暢感有重要作用。
圖I為現(xiàn)有技術(shù)中的網(wǎng)絡(luò)游戲系統(tǒng)的架構(gòu)示意圖;圖2為本發(fā)明實施例提供的網(wǎng)絡(luò)游戲系統(tǒng)的架構(gòu)示意圖;圖3為本發(fā)明實施例提供的對區(qū)域組內(nèi)的玩家位移數(shù)據(jù)進行多播的流程圖。
具體實施例方式為使本發(fā)明技術(shù)方案的技術(shù)原理、特點以及技術(shù)效果更加清楚,以下結(jié)合具體實施例對本發(fā)明方案進行詳細闡述。圖2為本發(fā)明實施例提供的網(wǎng)絡(luò)游戲系統(tǒng)的架構(gòu)示意圖。與圖I相比較可以看出,本發(fā)明實施例將多播功能從業(yè)務(wù)服務(wù)器201獨立出來,建立多播服務(wù)器202 ;11臺客戶端101 (客戶端I至客戶端n)與連接負載服務(wù)器102建立連接,連接負載服務(wù)器102根據(jù)各個連接服務(wù)器103 (連接服務(wù)器I至連接服務(wù)器m)的負載情況,選擇適當(dāng)?shù)倪B接服務(wù)器建立客戶端101和業(yè)務(wù)服務(wù)器201之間的雙向數(shù)據(jù)通路以及多播服務(wù)器202到客戶端101的數(shù)據(jù)通路。具體地說,連接負載服務(wù)器102給客戶端101分配一個連接服務(wù)器103后,會斷開自身與客戶端101的連接,由客戶端101與連接服務(wù)器103進行連接。此后客戶端101發(fā)往業(yè)務(wù)服務(wù)器201的上行數(shù)據(jù),都由連接服務(wù)器103進行中轉(zhuǎn),而業(yè)務(wù)服務(wù)器201的下行數(shù)據(jù)也經(jīng)由連接服務(wù)器103轉(zhuǎn)發(fā)給客戶端101。多播服務(wù)器202將多播數(shù)據(jù)發(fā)送給連接服務(wù)器103,由連接服務(wù)器103轉(zhuǎn)發(fā)給客戶端101。根據(jù)游戲需求,按照一定的規(guī)則將多播域分組,如大區(qū)、本線、隊伍、場景、特殊區(qū)域組等,分組信息存儲在多播服務(wù)器202中。當(dāng)有組內(nèi)成員發(fā)生變動時,由業(yè)務(wù)服務(wù)器201通知多播服務(wù)器202進行注冊或銷號。當(dāng)有多播事件發(fā)生時,業(yè)務(wù)服務(wù)器201向多播服務(wù)器202發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識;多播服務(wù)器202收到來自業(yè)務(wù)服務(wù)器201的通知,根據(jù)通知設(shè)置的分組類型,找到分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。以下以區(qū)域組為例對本發(fā)明方案進行進一步說明。將網(wǎng)絡(luò)游戲虛擬世界的場景地圖根據(jù)需求,分成一個個單獨的區(qū)域,對某區(qū)域(以下稱為第一區(qū)域)內(nèi),玩家的位移數(shù)據(jù)進行多播。實現(xiàn)流程如圖3所示,包括如下步驟 步驟301 當(dāng)有玩家A進入第一區(qū)域時,業(yè)務(wù)服務(wù)器201通知多播服務(wù)器202,在第一區(qū)域?qū)?yīng)的區(qū)域組(稱為第一區(qū)域組)內(nèi)注冊玩家A ;步驟302 :多播服務(wù)器202收到通知,在第一區(qū)域組內(nèi)注冊一個多播用戶對應(yīng)玩家A,并分配相應(yīng)的標識(如玩家A);步驟303 :玩家A在第一區(qū)域內(nèi)發(fā)生位移,業(yè)務(wù)服務(wù)器201向多播服務(wù)器202發(fā)送一次玩家位移通知,該通知包含玩家位移信息、廣播組類型(區(qū)域組)和區(qū)域組標識;步驟304 :多播服務(wù)器202收到通知,搜索該區(qū)域組內(nèi)所有多播用戶,以多播形式向每個多播用戶發(fā)送玩家A的位移信息。步驟305 :玩家A離開第一區(qū)域,業(yè)務(wù)服務(wù)器201通知多播服務(wù)器202,在第一區(qū)域組內(nèi)刪除玩家A。步驟306 :多播服務(wù)器202收到通知,在第一區(qū)域組內(nèi)刪除玩家A對應(yīng)的多播用戶。假設(shè)在業(yè)務(wù)服務(wù)器只發(fā)送角色位移數(shù)據(jù),當(dāng)同屏玩家數(shù)量是10人時,發(fā)送30字節(jié)的角色位移數(shù)據(jù)。如采用現(xiàn)有技術(shù)方式,因發(fā)送角色位移數(shù)據(jù)造成的服務(wù)器帶寬消耗是2. 6K/s,20人時,帶寬消耗是5. 2K/s,顯然,該帶寬消耗量隨著同屏玩家的數(shù)量成比例增長。而如果采用本發(fā)明方案,因發(fā)送角色位移數(shù)據(jù)造成帶寬消耗平均保持在I. 3K/s,并且與同屏玩家數(shù)目無關(guān),如果加上服務(wù)器其他廣播業(yè)務(wù)上帶寬消耗的優(yōu)化,對業(yè)務(wù)服務(wù)器的網(wǎng)絡(luò)吞吐量的提升會非常明顯。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法,其特征在于,包括如下步驟 A、在多播服務(wù)器存儲多播域的分組信息; B、業(yè)務(wù)服務(wù)器向多播服務(wù)器發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識; C、多播服務(wù)器根據(jù)所接收的多播通知消息查詢存儲的分組信息,找到多播分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述業(yè)務(wù)服務(wù)器為網(wǎng)絡(luò)游戲系統(tǒng)中的業(yè)務(wù)服務(wù)器。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述多播域的分組信息按照大區(qū)、本線、隊伍、場景或特殊區(qū)域?qū)τ脩暨M行分組。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法進一步包括 當(dāng)有組內(nèi)成員發(fā)生變動時,業(yè)務(wù)服務(wù)器通知多播服務(wù)器注冊或注銷多播用戶。
5.一種網(wǎng)絡(luò)游戲系統(tǒng),包括業(yè)務(wù)服務(wù)器,其特征在于,該系統(tǒng)還包括多播服務(wù)器; 所述業(yè)務(wù)服務(wù)器在發(fā)生多播事件時,向多播服務(wù)器發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識; 所述多播服務(wù)器用于存儲多播域的分組信息;接收來自業(yè)務(wù)服務(wù)器的多播通知消息,根據(jù)所接收的多播通知消息查詢存儲的分組信息,找到多播分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)游戲系統(tǒng),其特征在于,所述多播域的分組信息按照大區(qū)、本線、隊伍、場景或特殊區(qū)域?qū)τ脩暨M行分組。
7.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)游戲系統(tǒng),其特征在于,當(dāng)有組內(nèi)成員發(fā)生變動時,所述業(yè)務(wù)服務(wù)器通知多播服務(wù)器注冊或注銷多播用戶。
全文摘要
本發(fā)明提供了一種在網(wǎng)絡(luò)游戲系統(tǒng)中進行數(shù)據(jù)多播方法,包括如下步驟A、在多播服務(wù)器存儲多播域的分組信息;B、業(yè)務(wù)服務(wù)器向多播服務(wù)器發(fā)送多播通知消息,所述多播通知消息中包括多播數(shù)據(jù)以及分組標識;C、多播服務(wù)器根據(jù)所接收的多播通知消息查詢存儲的分組信息,找到多播分組及組內(nèi)各用戶信息,對組內(nèi)每一個用戶發(fā)送多播數(shù)據(jù)。本發(fā)明還提供了一種網(wǎng)絡(luò)游戲系統(tǒng)。本發(fā)明方案避免了多播業(yè)務(wù)對業(yè)務(wù)服務(wù)器網(wǎng)絡(luò)帶寬的占用,可以提升業(yè)務(wù)服務(wù)器的網(wǎng)絡(luò)吞吐量和流暢度。本發(fā)明方案尤其適用于多人在線的網(wǎng)絡(luò)游戲系統(tǒng),對提升用戶體驗、游戲的流暢感有重要作用。
文檔編號H04L29/06GK102724201SQ20121021402
公開日2012年10月10日 申請日期2012年6月25日 優(yōu)先權(quán)日2012年6月25日
發(fā)明者劉璐 申請人:北京像素軟件科技股份有限公司