[egret+pomelo]實時對戰遊戲雜記(5)

以前大致瞭解了pomelo服務端的運行的大致運行流程,下面詳細的學習一下在服務端比較重要的一個容器模塊bearcat,在bearcat的wiki中咱們能夠對其有個大概的瞭解,在服務端示例的代碼中也大量的出現了對bearcat模塊的使用。git

如playerHandler.js中:github

module.exports = function (app) {
  //設置bearcat bean
  return bearcat.getBean({
    id: "playerHandler",//惟一Id
    func: PlayerHandler,//所對應的對象
    //參數 至關於調用  var PlayerHandler= function(app){}
    args: [{
      name: "app",
      value: app
    }],
    //依賴注入
    props: [{
      //對象名稱
      name: "areaService",
      //引用文件
      ref: "areaService"
    }, {
      name: "dataApiUtil",
      ref: "dataApiUtil"
    }, {
      name: "consts",
      ref: "consts"
    }]
  });
};

總結起來,bearcat有不少功能,在使用上最方便的就是其做爲容器,能夠在預加載的時候,將代碼中的全部模塊進行封裝,讓咱們能夠根據模塊的id,輕鬆的對模塊功能進行調用,不用再去想模塊文件的位置來作「require(xxx)」或實例化操做app

其中getBean({xxx});方法的參數中,也有些配置須要咱們注意的地方。異步

好比:async

1.對象的單例、實例化模式函數

scope : scope 能夠是 singleton 或者是 prototype, 默認狀況下是 singleton

2.抽象學習

abstract : 用於定義一個bean是抽象的, 即不會實例化, 默認狀況下是 false

3.繼承ui

parent : 用於定義bean之間的繼承關係, 相似於對象之間的繼承關係, 子類會繼承父類 prototype 裏面所沒有的method, 值爲parent bean id

4.初始化及銷燬spa

init : 在構造函數被調用以後執行的init方法, init 方法能夠是async異步的
destroy : 析構函數, 當容器優雅的關閉的時候, destroy 方法會被調用, 來作一些銷燬工做
相關文章
相關標籤/搜索