前言:
上一篇講到用nvm安裝Node.js系統(tǒng)暗挑,目前的最新版本是v7.10.0,最后的LTS版本是v6.10.3,理所當然選擇v6.10.3礁哄。
由于nvm是安裝在當前用戶目錄下的(我安裝的路徑是~/git/nvm),用它安裝的node js各個版本都在.../nvm/version/node目錄下铜涉,也就是說是當前用戶目錄下智玻。帶來的好處是:后續(xù)用npm install -g命令安裝的任何node插件都裝在當前用戶目錄,包括接下來要我們要裝的服務端引擎pomelo芙代,以及pomelo會用到的各種依賴庫尚困,這些插件的安裝、配置链蕊、運行等等事甜,所有一切,都已不再需要用sudo了滔韵。
1. 安裝pomelo
關于pomelo逻谦,抄一段官方的介紹吧:
pomelo是一個游戲服務器框架,與以往單進程的游戲框架不同, 它是高性能陪蜻、高可伸縮邦马、分布式多進程的游戲服務器框架,并且使用很簡單宴卖。它包括基礎開發(fā)框架和一系列相關工具和庫滋将,可以幫助開發(fā)者省去游戲開發(fā)中枯燥的重復勞動和底層邏輯工作,免除開發(fā)者的重造輪子症昏,讓開發(fā)者可以更多地去關注游戲的具體邏輯随闽,大大提高開發(fā)效率。pomelo強大的可伸縮性和靈活性使得pomelo也可以作為通用的分布式實時應用開發(fā)框架肝谭,用于一些高實時應用的開發(fā)掘宪,而且pomelo在很多方面的表現(xiàn)甚至超越了現(xiàn)有的開源實時應用框架。pomelo支持所有主流平臺的客戶端攘烛,并提供了客戶端的開發(fā)庫魏滚,使得客戶端的開發(fā)變得很友好。
選擇pomelo作為游戲服務端引擎的幾大理由:
- 免費坟漱、開源鼠次、有相對比較活躍的社區(qū)和Q群支持,有比較豐富的文檔和示例芋齿。
- 國內(nèi)有不少公司在用它開發(fā)服務端腥寇,有不少成功的案例,并且不只是游戲領域沟突。
- 源于網(wǎng)易的項目值得信任花颗,官方一直在維護和更新。雖然有很長一段時間停滯于v1.2.3惠拭,但是最近又重啟了扩劝,最新版本是v2.2.5庸论。
- 公司現(xiàn)有Node.js服務端程序,學習成本很低棒呛。后續(xù)人才招聘也相對容易聂示。
有了npm神器,pomelo的安裝非常簡單簇秒,只需要用npm全局安裝一次:
npm install pomelo -g
補充說明: 貌似官方中文文檔說明的“概述”部分沒有內(nèi)容鱼喉,只能看英文文檔。這里有個fork趋观,應該是現(xiàn)在新版本pomelo的維護者扛禽,看他的文檔會更好一些。
2.測試項目:
cd ~/prog
pomelo init ./test
顯示如下:
The default admin user is:
username: admin
password: adminYou 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]
根據(jù)項目需要選擇連接方式皱坛,大多數(shù)應用都選擇1编曼,用websocket建立連接∈1伲可以看出新的2.2.5比以前長期停滯的成熟版本1.2.3多了不少協(xié)議方式掐场。嗯,我前面確實學習過1.2.3贩猎,剛學到一點皮毛熊户,現(xiàn)在又需要學新東西了,活到老學到老吭服,汗嚷堡。廢話少說,創(chuàng)建成功后:
cd ./test
sh npm-install.sh
給項目里面的game-server和web-server都安裝需要的依賴項噪馏。具體配置看對應目錄下的package.json文件內(nèi)容麦到。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屋匕。重新執(zhí)行sh npm-install.sh葛碧,很快執(zhí)行完,這樣就配置好了过吻。
測試一下进泼。
進入game-server蔗衡,運行:
pomelo start
然后ctrl-t新開一個終端窗口,進入到web-server目錄下乳绕,運行:
node app
然后……報錯了绞惦,媽蛋它不認識express.createServer()函數(shù),汗洋措,擅自升級客戶端版本的后果济蝉。老老實實將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锌钮。打開鏈接桥温,熟悉的柚子粗線了:
點一下“Test Game Server”的按鈕,彈出“game server is ok”的消息框梁丘,表明一切順利侵浸。好了,打完收工氛谜。