web端請求pomelo服務器

/* * web端請求pomelo服務器 */?

/*?

pomelo服務器只有一個master服務器,master服務器代理masterAgent代為管理master的所有進程.?

一個服務器監聽多個進程,這些進程都會在agent的管理下.?

pomelo 自身有socket.io模塊,web請求pomelo 服務器就采用socket.io 不是websocket連接.?

pomelo-admin模塊下 masterAgent.js文件 有一個listen會監聽master服務器的所有事件. 這里主要是用到?

socket.on('client',function( msg ){ .... }); 監聽客戶端發來的請求?

msg參數是客戶端呢發來的信息 判斷msg中是否有命令?

我 這里的參數是沒有命令的?

execute方法 該方法會調用moduleId下的clientHandler方法 這個方法里才是真正處理業務邏輯的地方?

?self.consoleService.execute(msg.moduleId, 'clientHandler', msg.body,function(err, res) {?

? ? ? ?if (protocol.isRequest(msg)) {?

? ? ? ? ? ?var resp = protocol.composeResponse(msg, err, res);?

? ? ? ? ? ?if (resp) {?

? ? ? ? ? ? ? ? ?socket.emit('client', resp);

? ? ? ? ? ?}?

? ? ? ?} else { //notify should not have a callback

? ? ? ? ? ?logger.warn('notify should not have a callback.');

? ? ? }

?});?

?參數中有一個moduleId 這個參數是在app.js文件中注冊生成的, ======================================================== app.configure('production|development' ,function () {?

?var module = require("./modules/module.js");?

app.registerAdmin(module, {app: app});?

========================================================


======================================================== //module.js?

module.exports = function (opts) {?

?return new Module(opts);?

};


//對應consoleService.execute 方法中的msg.moduleId

?module.exports.moduleId = 'module';?


?var Module = function (opts) {

? ? ? ? opts = opts || {};?

? ? ? ? this.app = opts.app;?

};

?Module.prototype.clientHandler = function (agent, msg, cb) {?

? ? ? ? ? //業務邏輯都寫在這里面 cb 將結果返回?

?}; ========================================================?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,403評論 0 6
  • compoments/master.js game-server/app.jsvar pomelo = requi...
    抓不住的風閱讀 2,606評論 0 2
  • 個人入門學習用筆記、不過多作為參考依據。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點、復制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,500評論 1 37
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,422評論 25 708
  • 這個話題很少和朋友詳細討論,因為在他們眼里的堅持有各種各樣的尺度,最普遍的就是用時間的長短來衡量一個人是否堅持。 ...
    檸檬香閱讀 349評論 0 3