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,440评论 0 6
  • compoments/master.js game-server/app.jsvar pomelo = requi...
    抓不住的风阅读 2,609评论 0 2
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,510评论 1 37
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,838评论 25 709
  • 这个话题很少和朋友详细讨论,因为在他们眼里的坚持有各种各样的尺度,最普遍的就是用时间的长短来衡量一个人是否坚持。 ...
    柠檬香阅读 354评论 0 3