pomelo

簡介

Pomelo 是基於 Node.js 的高性能、分佈式遊戲服務器框架。它包括基礎的開發框架和相關的擴展組件(庫和工具包),能夠幫助你省去遊戲開發枯燥中的重複勞動和底層邏輯的開發。Pomelo 不但適用於遊戲服務器開發, 也可用於開發高實時 Web 應用,它的分佈式架構能夠使 Pomelo 比普通的實時 Web 框架擴展性更好。javascript

資料

Pomelo API
GITHUB :Home-in-Chinese
Pomelo Framework
使用 WebStorm IDE 調試 Pomelo 應用程序html

POMELO經常使用命令

init: 建立一個新項目,該項目中包含建立pomelo應用的基本文件及pomelo應用的簡單示例。
start: 啓動應用及服務器。
list: 列出當前應用開啓的全部服務器的信息,包括服務器Id、服務器類型、pid、堆使用狀況、啓動時長。
stop: 關閉應用及服務器或者中止指定的服務器。
kill: 強制關閉應用及服務器。
add: 運行時動態添加服務器。
masterha: 當啓用masterha高可用的時候,用來啓動master服務器的slave節點。
–version:列出當前使用pomelo的版本信息。
–help:列出全部pomelo支持的命令及使用說明。java

安裝

準備

1.確保機器能夠上網,由於安裝過程當中須要下載其依賴的包。
2.確保機器上已經安裝Node運行環境
3.雖然pomelo是用Javascript寫成,可是pomelo依賴的庫中,有使用了C++語言寫的擴展,所以安裝pomelo的過程當中會使用到C++編譯器。node

注:若是你使用的是Mac OS X系統, 則須要安裝Xcode Command Line Tools或者Xcode的完整包以及make工具.git

安裝pomelo

方法1:github

$ npm install pomelo -g

方法2:web

$ git clone https://github.com/NetEase/pomelo.git
$ cd pomelo
$ npm install -g

注:安裝過程當中如出現錯誤,多是由於沒有獲取本機權限,在npm前加sudo,輸入密碼獲取權限後便可正常安裝。算法

HELLO POMELO

環境安裝完成後,可在命令行中建立pomelo項目,代碼:數據庫

$ pomelo init ./HelloWorld

新建項目後,安裝項目依賴包:express

$npm-install.bat

新項目結構以下:
1461551716605
該目錄結構很清楚地展現了遊戲項目的先後端分層結構,分別在各個目錄下填寫相關代碼,便可快速開發遊戲。

目錄結構詳解

1.game-server

game-server是用pomelo框架搭建的遊戲服務器,以文件app.js做爲入口,運行遊戲的全部邏輯和功能。在接下來的開發中,全部遊戲邏輯、功能、配置等都在該目錄下進行。
app子目錄
這個目錄下放置全部的遊戲服務器代碼的地方,用戶在這裏實現不一樣類型的服務器,添加對應的Handler,Remote等等。

config子目錄
game-server下config包括了遊戲服務器的全部配置信息。配置信息以JSON文件的格式進行定義,包含有日誌、master、server等服務器的配置信息。該目錄還能夠進行擴展,對數據庫配置信息、地圖信息和數值表等信息進行定義。總而言之,這裏是放着全部遊戲服務器相關的配置信息的地方。

logs子目錄日誌是項目中不可或缺的,能夠對項目的運行狀況進行很好的備份,也是系統運維的參考數據之一,logs存放了遊戲服務器全部的日誌信息。

2.shared

shared存放一些先後端、game-server與web-server共用代碼,因爲都是javascript代碼,那麼對於一些工具或者算法代碼,就能夠先後端共用,極大地提升了代碼重用性。

web-server

web-server是用express 3.x框架搭建的web服務器,以文件app.js做爲入口,固然開發者能夠選擇Nginx等其餘web服務器。若是遊戲的客戶端不是web的話,如Android平臺的話,這個目錄就不是必須的了。固然,在這個例子中,咱們的客戶端是web,因此web服務器仍是必須的。

啓動

啓動game-server服務器:

  1. $ cd game-server
  2. $ pomelo start

啓動web-server服務器:

  1. $ cd web-server
  2. $ node app

注:在啓動過程當中可能會有端口號衝突致使啓動不成功,只需在config裏面修改使用的端口號便可

中止

$ pomelo stop

或者

$ pomelo kill

chat示例

chatofpomelo-websocket是在GITHUB上提供的一個pomelo實時聊天的demo,包含pomelo中比較重要的server服務器管理,demo功能強大、代碼量很小,適合對pomelo的入門和原理理解,在項目的下載和安裝教程中有較詳細的項目功能及代碼介紹。

總結

Pomelo做爲高性能、分佈式遊戲服務器開發框架,針對其Network,請求、響應、廣播、RPC、session 管理等構成了整個遊戲框架,這種流程幾乎涵蓋了當前流行的全部遊戲模式的和玩法的搭建,在學習過程當中,最讓我興奮的是分佈式架構帶來的實時性和擴展性,讓遊戲能夠在不多的代碼量下發揮更大的遊戲發展空間。

相關文章
相關標籤/搜索