pomelo 添加一个新的server时报错 register master failed
  admin 发表于 2014-10-03 20:19  分类:技术资料  6,049 次阅读  0条评论

在 servers.json 里面添加了一个 area server 字段,执行 pomelo start 的时候出现如下错误

[2014-03-12 12:54:19.637] [ERROR] pomelo-admin – [/Users/xxx/Desktop/xxx/server/game-server/node_modules/pomelo/node_modules/pomelo-admin/lib/monitorAgent.js] server "area-server-1" "area"register master failed

如何查找错误呢,用webstorm 调试,不过又要装软件,又要配置环境,最简单的就是看代码

在moitorAgent.js 里面找到这段

 …

 this.socket.on('register', function(msg) {

   if (msg && msg.code === protocol.PRO_OK) {

     …

     logger.error('server %j %j registermasterfailed', self.id, self.type);

   }

 });

 …

要么搜索 ‘register’, 要么 protocol.PRO_OK, 我优先选择 protocol.PRO_OK

定位到 /pomelo-admin/lib/masterAgent.js 中的 var doAuthServer = function…

里面有个 authServer 的验证: var authServer = self.consoleService.authServer

然后跳转到 consoleService.js, 找到 this.authServer = opts.authServer || utils.defaultAuthServerMonitor

先不管 opts.authServer,  直接查找 utils.defaultAuthServerMonitor

定位到 var serverPath = path.join(appBase, 'config/adminServer.json')

打开 adminServer.json 问题一目了然了

是新版添加了adminServer.json,需要在这里添加每种服务器类型的token(默认创建的只有connector)

[

   {

       "type": "connector",

       "token": "aga...xn"

   },

   {

       "type": "account",

       "token": "aga...xn"

   }

]

添加account类型以后(token随便填,自己生成个足够长的字符串填进去即可)

不同服务器用相同的token也可以,取决于你的安全性要求程度。

根据官方的描述,在单机部署时,是可以没有这个文件的,但是如果要分布式部署,必须有这个文件,当做不同服务器间(主要是master和其它服务器的monitor组件)之间通讯的验证串来使用。

本文摘自:

http://www.cnblogs.com/shadow21/p/3596231.html

http://www.cppblog.com/tdzl2003/archive/2013/11/10/204188.html

本文固定链接: http://www.youduoshao.com/2014-10-03/201410032333.html

填写您的称呼和邮箱即可发布评论

快捷键:Ctrl+Enter