天天看點

從 Pomelo 源碼中整理出知識點

Node.js 遊戲開發架構 Pomelo 知識點

最近更新時間:2019-09-24

原文連結:http://www.childsay.com/pomelo-point.html

1.擷取 pomelo 運作的環境

源碼中設定運作環境的位置 lib/util/appUtil.js

// 193 行
var setupEnv = function(app, args) {
  app.set(Constants.RESERVED.ENV, args.env || process.env.NODE_ENV || Constants.RESERVED.ENV_DEV, true);
};
           

其中 Constants.RESERVED.ENV 的值為 env,Constants.RESERVED.ENV_DEV 的值為 development。

使用

pomelo start

方式啟動時如果沒有傳入 --env 參數,則會先檢查 process.env.NODE_ENV 環境變量是否設定,如果沒有則預設為 development。如果是通過

pomelo start --env production

方式啟動則是 production。

擷取運作環境的方法為:

2.擷取項目的根目錄

app.get('base')
// 或
app.getBase()
           

即 app.js 所在的目錄

3.監聽所有 server 啟動完成後事件

如果需要在所有伺服器啟動完成後,再執行某些操作,可以通過監聽

start_all

事件來實作。

// app.js
app.event.on('start_all', () => {
  console.log(`所有服務啟動完成了`)
})
           

app.event 其它事件

  • bind_session
  • close_session
  • add_servers
  • remove_servers
  • replace_servers
  • add_crons
  • remove_crons
  • start_all
  • start_server

4.擷取用戶端 ip 和端口

const ip = session.__session__.__socket__.remoteAddress.ip
const port = session.__session__.__socket__.remoteAddress.port