作者:shihuaping0918@163.com惰拱,轉載請注明作者
pomelo是大黃易開源的一個游戲框架判没,老外也有不少人在用,中國用得反而沒那么多庄新,可能不少人都沒有聽說過鞠眉。而且它是基于node.js的,這在游戲界就比較特殊了择诈。在大家對lua非常熱愛械蹋,非常癡迷的時候,居然有人用js寫游戲服務器羞芍。
pomelo是一個庫哗戈,一個node.js庫。它提供了非常詳細的文檔荷科,當然沒有阿里dubbo那么詳細唯咬。但是對于開源項目來說,它的文檔也算是良心代表之一了畏浆。還提供了例子胆胰,一步一步非常詳細地引導用戶實現(xiàn)一個聊天服務器。另外還提供了一個mmo的例子全度。
node.js的技術發(fā)展是飛速的煮剧,所以pomelo里用到的技術有些已經(jīng)過時了。這是開源項目的一個痛點将鸵。當前已經(jīng)是node v8了勉盅,也基本上都是在用ECMA6了,如果說是為了技術去分析它是沒有太大意義的顶掉。分析它主要是學習它的設計思想草娜。pomelo有人fork了自己在維護,因為它代碼量不太痒筒,又不像skynet那樣代碼有很多黑科技宰闰,是純js寫的,所以比較純粹簿透,修改起來也比較簡單移袍。而且還能用webstorm調(diào)試——這個是很多開發(fā)非常喜歡的。你要是想調(diào)試skynet老充,還是老實點打印日志吧葡盗。
由于node.js提供的庫非常的全面,比如websocket啡浊,可以拿來直接用觅够。所以擴展也比較容易胶背,不需要自己去寫一套。也不需要再封裝成其它語言喘先。但是node.js有node.js的缺點钳吟,那就是工作線程是單線程。同時還要習慣寫異步調(diào)用窘拯。最新的node v8已經(jīng)基本上可以脫離寫異步調(diào)用了红且。但有時候還是需要promise的支持。寫游戲的很多都是網(wǎng)狐架構起步的涤姊,寫異步不太符合思維習慣直焙。這也許是它沒有在國內(nèi)大火的原因之一吧。
github地址
https://github.com/NetEase/pomelo
pomelo的設計和概念這里就不贅述了砂轻,一是我寫得沒官方好,二是在這里重復一遍也是多余斤吐。