[發明專利]采用全事件驅動的高效分布式游戲服務器的通信方法無效
| 申請號: | 201210578561.0 | 申請日: | 2012-12-27 |
| 公開(公告)號: | CN103078909A | 公開(公告)日: | 2013-05-01 |
| 發明(設計)人: | 劉德建;陳宏展;王飛云;華曉明 | 申請(專利權)人: | 福建天晴數碼有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06 |
| 代理公司: | 福州市鼓樓區京華專利事務所(普通合伙) 35212 | 代理人: | 宋連梅 |
| 地址: | 350000 福*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 采用 事件 驅動 高效 分布式 游戲 服務器 通信 方法 | ||
【技術領域】
本發明涉及網絡游戲系統,具體是指一種采用全事件驅動的高效分布式游戲服務器的通信方法。
【背景技術】
目前,網絡游戲日益變得普及。網絡游戲以互聯網為傳輸媒介,以游戲運營商服務器和用戶計算機為處理終端,以游戲客戶端軟件為信息交互窗口,旨在實現娛樂、休閑、通訊交流和取得虛擬成就,具有相當可持續性。
與此同時,游戲運營商所構建的服務器也日益龐大。
現有的游戲服務器的通信方法,一般采用的是,在一個while循環時先取出邏輯隊列里的數據(邏輯隊列的數據一般指的是邏輯層要發送的數據),然后把這些數據放入到通信處理隊列由通信線程進行發送處理,在處理到一定條件下,例如,發的數量達到某個數量級或是邏輯隊列里的數據已經發送完,那么就跳出發的流程去收一次客戶端數據,如果收和發都沒有數據要處理,那么這個通信處理線程將等待500毫秒(500毫秒是為了防止線程進入死循環,這里只是舉例說明,等待時間不一定是500毫秒)再進行收發數據處理。
這樣的通信方法效率低,處理數據不夠及時。
有鑒于此,本發明人針對現有技術的缺陷深入研究,并有本案產生。
【發明內容】
本發明所要解決的技術問題在于提供一種采用全事件驅動的高效分布式游戲服務器的通信方法。
本發明是這樣實現的:
采用全事件驅動的高效分布式游戲服務器的通信方法,所述游戲服務器包括:網關服務器、主服務器、結點服務器、數據庫服務器、全局服務器以及NPC服務器;所述通信方法包括:
將NPC服務器作為結點服務器的一個線程;
各服務器間通信部分除了用于接收客戶端消息的網關服務器采用的是IOCP外,其它部分服務器間的通信都采用的是socket事件,服務器內部線程間的通信部分采用的是隊列事件;
在服務器的通信線程每次執行while循環時,socket事件與隊列事件同時進行。
進一步地,所述隊列事件包括如下步驟:
步驟10:設置所需事件;
步驟11:檢測所需事件;
步驟12:判斷是否有事件,是,則轉入步驟13,否,則轉入步驟10;
步驟13:放入事件相應的處理隊列。
進一步地,所述socket事件包括如下步驟:
步驟20:檢測socket是否有效,是,轉入步驟21,否,轉入步驟25;
步驟21:設置所需事件;
步驟22:檢測所需事件;
步驟23:判斷是否有事件,是,則轉入步驟24,否,則轉入步驟20;
步驟24:放入邏輯層隊列以使邏輯層進行處理;
步驟25:刪除無效socket。
本發明的優點在于:采用全事件驅動方式來實現整個服務器的通信方法,事件socket以及事件隊列的組合使用能夠做到高效、及時的處理服務器間以及服務器內線程間的消息通信。
【附圖說明】
下面參照附圖結合實施例對本發明作進一步的描述。
圖1是本發明中服務器架構圖。
圖2是本發明中隊列事件流程圖。
圖3是本發明中socket事件流程圖。
【具體實施方式】
如圖1所示,整個游戲服務器分為:網關服務器、主服務器、結點服務器、數據庫服務器、全局服務器以及NPC服務器。為了減少開發的復雜度、服務器配置以及搭建的復雜度,本發明把NPC服務器做為結點服務器的一個線程。為了提高在線人數,把結點服務器(也可稱為邏輯游戲服務器)按照地圖組來劃分,劃分成多個結點服務器。
為了提高各服務器間以及服務器內各線程間的消息響應速度,在各服務器間通信部分除了用于接收客戶端消息的網關服務器采用的是IOCP外,其它部分服務器間的通信都采用的是事件socket,服務器內部線程間的通信部分采用的是事件隊列。對于這些事件的處理方法是:在服務器的通信線程每次執行while循環中去設置自己想要的事件,然后去檢測這些設置的事件(如果都沒事件到來,那么等待事件的超時間為50毫秒),在檢測這些事件的過程中,將有事件觸發的事件置個標示,以表明有相應的事件到來,然后根據這個標示把這些事件信息放到邏輯層的相應對列中,由邏輯層去處理具體的事務。
如圖2所示,是隊列事件流程圖。詳細步驟如下:
步驟10:設置所需事件;
步驟11:檢測所需事件;
步驟12:判斷是否有事件,是,則轉入步驟13,否,則轉入步驟10;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福建天晴數碼有限公司,未經福建天晴數碼有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210578561.0/2.html,轉載請聲明來源鉆瓜專利網。





