HMX-Server C++ 分步式伺服器大版本更新了(有源碼)

来源:http://www.cnblogs.com/hellohuang/archive/2017/01/17/6294763.html
-Advertisement-
Play Games

原文地址:http://www.cnblogs.com/hellohuang/p/6294763.html # HMX-ServerHMX-Server分步式伺服器框架,主要分為網關、登錄、世界、場景、數據伺服器,適用於大中小型項目 # 安裝步驟1. 下載後,將Source/dependence/下 ...


原文地址:http://www.cnblogs.com/hellohuang/p/6294763.html 
# HMX-Server
HMX-Server分步式伺服器框架,主要分為網關、登錄、世界、場景、數據伺服器,適用於大中小型項目

# 安裝步驟
1. 下載後,將Source/dependence/下的boost,protobuf裡面的lib.rar解壓到當前目錄
2. 安裝Cmake-3.4 x64以上版本,vs2015 x64 ,mysql5.6 x64
3. 用Cmake進行創建方案然後並整個解決方案編譯
4. 導入Source/sql/下的hmx-data.sql數據,數據密碼配置在Source/WorldServer/serices.xml文件中
5. 在vs中按順序啟動WorldServer.exe、BServer.exe、GameServer.exe、LoginServer.exe、GatewayServer.exe或在Bin/Debug/中雙擊RunServers.bat啟動伺服器
5. 在vs中啟動Client.exe或在Bin/Debug/雙擊Client.exe啟動客戶端進行測試

***
# 運行示例圖

**世界服啟動**

世界服

**數據服**

世界服

**場景服**

場景服

**登錄服**

登錄服

**網關服**

網關服

**客戶端**

客戶端

# 目錄介紹
1. Bin/Debug/ 編譯存放目錄
2. Resource/ 配置及資源目錄
3. Source/ 源代碼文件

  • 1. Client/ 測試客戶端
  • 2. DBServer/ 資料庫處理服
  • 3. dependence/ 第三方依賴庫
  • 4. FlatServer/ 平臺方案服(跨平臺轉發協議用,暫未實現)
  • 5. GameServer/ 場景伺服器
  • 6. GatewayServer/ 網關伺服器
  • 7. HelpTools/ 工具項目(用於生成數據、處理數據輔助開發用)
  • 8. Include/ 共用引入文件
  • 9. LibNetMysql/ Mysql資料庫封裝類庫
  • 10. LibNetSocket/ Socket封裝類庫
  • 11. LibProtocol/ Protocol協議類目錄
  • 12. LibSrvcore/ 本項目共用類庫
  • 13. LoginServer/ 登錄伺服器
  • 14. LogServer/ 日誌伺服器(資料庫日誌、暫未實現)
  • 15. MQServer/ 消息隊列伺服器(處理外部可延時事件,持久例事件處理,如充值、後臺調用等;暫未實現)
  • 16. ShiftServer/ 區域管理伺服器(暫未實現)
  • 17. sql/ 資料庫更新記錄目錄
  • 18. WorldServer/ 世界伺服器

4. vc14/ 這個是用cmake 生成的文件目錄(名字自定)

# 伺服器層級介紹
        平臺服          <-----------平臺服-------->Mysql(管理後臺資料庫)
          |
          / \
        區域服1 區域服2
          |
            / \             世界服、數據服、登錄服
      世界服1 世界服N       <------------------------>Mysql(游戲資料庫)
       / | \ \
       / | \ | \
       / | \ | \
    場景服1 場景服N \ <-> 數據服 <-> 登錄服
      \ \      |       ---    /
       \       |(世界服)       /
        \    | /
        網關服1 網關服N

# NetSerivce.cpp 總管理器文件
1. 聚合了大部分該伺服器的管理類,所有資源都需要從NetSerivce中獲得,這樣做的目的是將資源都聚合在一起,提供統一介面,方便記憶與管理,比如:你所找要的資源->NetSerivces實例對象->get各個資源類->get所需要的資源
2. NetSerivce也包括了main函數,啟動程式的入口
3. serivces.xml配置文件以WorldServer/目錄下的為準,當重新編譯WorldServer時,會自動將它拷貝到Bin/Debug和vs項目調度目錄下

[github]https://github.com/huangzuduan/HMX-Server

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【轉自:http://www.cnblogs.com/disheng2016/p/6266523.html】 maven下載jar包的預設倉庫是http://my.repository.com/repo/path速度較慢,通過配置國內鏡像提高下載速度 1.打開eclipse >Window >Pre ...
  • 今天我們來講一下模板方法模式。 一、案例 我們在上中學的時候,會有這麼一種場景,老師在黑板上寫測試題,讓我們自己抄到紙上做。相信不少小伙伴們都經歷過這種歲月,想想還是很懷念的呢。這種做測試的方式,對當時的我們來講,有一個最致命的痛苦,就是這個題目會做,但是TM抄錯了題目了,擦擦擦。相信不少小伙伴肯定 ...
  • 在項目中或多或少的都存在著重覆的或者功能相似的代碼,如果要對代碼做改動,就要修改多個地方,所以我們需要將多處重覆的代碼提取到一個公共的地方供統一調用,以減少代碼量,提高代碼可維護性。 重構前代碼 重構後代碼 ...
  • 引言 2016年中,我所在的項目組將原來系統中的登錄模塊拆出來做成一套集中賬號管理系統,並對外提供單點登錄的服務。後來,公司中需要使用員工賬號進行登錄的系統越來越多,但這些系統都是各有各的實現方式,管理比較混亂。為了推廣我們組的賬號管理系統,統一公司的賬號體系,我寫了一篇“軟文”希望在公司技術月刊上 ...
  • 對於之前微信支付的文章中,我們談過了它的很多"坑",而在進行紅包開發時,這種坑依然不少,主要是微信為我們提供的各種賬號和密鑰太多,把開發人員都搞暈了,下麵大叔總結一下: 一 微信支付的密鑰 統一使用公眾號密鑰:Key 二 微信紅包的密鑰 統一使用商戶賬號的密鑰:AppSecret 三 紅包進行簽名要 ...
  • 1.添加按鈕 首先添加一個刪除按鈕,打開文件Index.js【..\MyCompanyName.AbpZeroTemplate.Web\Areas\Mpa\Views\Category\Index.js】 添加如下代碼: display: function (data) { var $span = ...
  • 一、問題: 資料庫表數據量極大(千萬條),要求讓伺服器更加快速地響應用戶的需求。 資料庫表數據量極大(千萬條),要求讓伺服器更加快速地響應用戶的需求。 二、解決方案: 1.通過高速伺服器Cache緩存資料庫數據 2.記憶體資料庫 (這裡僅從數據緩存方面考慮,當然,後期可以採用Hadoop+HBase+ ...
  • java基礎知識-去掉list集合中的重覆元素: 思路: 首先新建一個容器resultList用來存放去重之後的元素 然後遍歷sourceList集合中的元素 判斷所遍歷的元素是否已經存在於resultList,如果不存在,則將這個元素加入到resultList中,否則不加。 通過判斷將第二次出現的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...