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