搭建Ubuntu下的Node.js和Pomelo開發環境(二)—— 安裝Pomelo和測試工程

前言:

上一篇講到用nvm安裝Node.js系統,目前的最新版本是v7.10.0,最后的LTS版本是v6.10.3,理所當然選擇v6.10.3。

由于nvm是安裝在當前用戶目錄下的(我安裝的路徑是~/git/nvm),用它安裝的node js各個版本都在.../nvm/version/node目錄下,也就是說是當前用戶目錄下。帶來的好處是:后續用npm install -g命令安裝的任何node插件都裝在當前用戶目錄,包括接下來要我們要裝的服務端引擎pomelo,以及pomelo會用到的各種依賴庫,這些插件的安裝、配置、運行等等,所有一切,都已不再需要用sudo了。

1. 安裝pomelo

關于pomelo,抄一段官方的介紹吧:

pomelo是一個游戲服務器框架,與以往單進程的游戲框架不同, 它是高性能、高可伸縮、分布式多進程的游戲服務器框架,并且使用很簡單。它包括基礎開發框架和一系列相關工具和庫,可以幫助開發者省去游戲開發中枯燥的重復勞動和底層邏輯工作,免除開發者的重造輪子,讓開發者可以更多地去關注游戲的具體邏輯,大大提高開發效率。pomelo強大的可伸縮性和靈活性使得pomelo也可以作為通用的分布式實時應用開發框架,用于一些高實時應用的開發,而且pomelo在很多方面的表現甚至超越了現有的開源實時應用框架。pomelo支持所有主流平臺的客戶端,并提供了客戶端的開發庫,使得客戶端的開發變得很友好。

選擇pomelo作為游戲服務端引擎的幾大理由:

  • 免費、開源、有相對比較活躍的社區和Q群支持,有比較豐富的文檔和示例。
  • 國內有不少公司在用它開發服務端,有不少成功的案例,并且不只是游戲領域。
  • 源于網易的項目值得信任,官方一直在維護和更新。雖然有很長一段時間停滯于v1.2.3,但是最近又重啟了,最新版本是v2.2.5。
  • 公司現有Node.js服務端程序,學習成本很低。后續人才招聘也相對容易。

有了npm神器,pomelo的安裝非常簡單,只需要用npm全局安裝一次:
npm install pomelo -g

補充說明: 貌似官方中文文檔說明的“概述”部分沒有內容,只能看英文文檔。這里有個fork,應該是現在新版本pomelo的維護者,看他的文檔會更好一些。

2.測試項目:

cd ~/prog
pomelo init ./test

顯示如下:

The default admin user is:

username: admin
password: admin

You can configure admin users by editing adminUser.json later.

Please select underly connector, 1 for websocket(native socket), 2 for socket.io, 3 for wss, 4 for >socket.io(wss), 5 for udp, 6 for mqtt: [1]

根據項目需要選擇連接方式,大多數應用都選擇1,用websocket建立連接??梢钥闯鲂碌?.2.5比以前長期停滯的成熟版本1.2.3多了不少協議方式。嗯,我前面確實學習過1.2.3,剛學到一點皮毛,現在又需要學新東西了,活到老學到老,汗。廢話少說,創建成功后:

cd ./test
sh npm-install.sh

給項目里面的game-server和web-server都安裝需要的依賴項。具體配置看對應目錄下的package.json文件內容。game-server服務端很快配置完了,客戶端web-server在安裝express的時候卡了很久,打開目錄下的package.json看了一下,需要安裝的express的版本號為3.4.8,貌似有點out了,ctrl-c中斷下來,我先裝個最新的express再說:

npm install express

全局安裝最新的express,裝完看到版本號是4.15.2。修改一下客戶端package.json里面express的版本號,改成4.15.2。重新執行sh npm-install.sh,很快執行完,這樣就配置好了。

測試一下。
進入game-server,運行:

pomelo start

然后ctrl-t新開一個終端窗口,進入到web-server目錄下,運行:

node app

然后……報錯了,媽蛋它不認識express.createServer()函數,汗,擅自升級客戶端版本的后果。老老實實將express版本改回3.4.8,重新配置。耐心等待,老版本可能被npm倉庫放到某個旮旯里面去了,找到它比較吃力,下載也吃力。

終于下完,重新運行node app,這次成功了,不過有個警告:

Warning: express.createServer() is deprecated, express
applications no longer inherit from http.Server,
please use:

var express = require("express");
var app = express();
......
Please log on http://127.0.0.1:3001/index.html

早說嘛,早說我就不用換版本了,改一下源程序就行了。算了,反正只是test。打開鏈接,熟悉的柚子粗線了:

Screenshot from 2017-05-04 17-47-48.png

點一下“Test Game Server”的按鈕,彈出“game server is ok”的消息框,表明一切順利。好了,打完收工。

To be continue...(未完待續)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容