diff --git a/tools/robot/clientnet.js b/tools/robot/clientnet.js index b7c95b4f..02300a25 100644 --- a/tools/robot/clientnet.js +++ b/tools/robot/clientnet.js @@ -33,7 +33,9 @@ class ClientNet { this.registerMsgHandle( msgName, (msg) => { - this[msgName](msg); + if (this[msgName]) { + this[msgName](msg); + } }); } @@ -57,8 +59,10 @@ class ClientNet { this.smMsgId = this.msgIdPb.lookup('SMMessageId_e'); } { - this.selfRegisterMsgHandle('SMLogin'); - this.selfRegisterMsgHandle('SMPing'); + for (let id in this.smMsgId.valuesById) { + const msgName = this.smMsgId.valuesById[id]; + this.selfRegisterMsgHandle(msgName.slice(1)); + } } } @@ -125,26 +129,30 @@ class ClientNet { } registerMsgHandle(msgName, cb) { - const msgType = this.protoPb.lookupType(msgName); - const msgId = this.smMsgId.values['_' + msgName]; - if (!msgId) { + try { + const msgType = this.protoPb.lookupType(msgName); + const msgId = this.smMsgId.values['_' + msgName]; + if (!msgId) { + return null; + } + const handle = { + msgId: msgId, + msgName: msgName, + msgType: msgType, + cb: cb, + uniqId: ++this.uniqId} + ; + if (!this.msgHandlerMap.has(msgId)) { + this.msgHandlerMap.set(msgId, new Map([ + [handle.uniqId, handle] + ])); + } else { + this.msgHandlerMap.get(msgId).set(handle.uniqId, handle); + } + return handle; + } catch (err) { return null; } - const handle = { - msgId: msgId, - msgName: msgName, - msgType: msgType, - cb: cb, - uniqId: ++this.uniqId} - ; - if (!this.msgHandlerMap.has(msgId)) { - this.msgHandlerMap.set(msgId, new Map([ - [handle.uniqId, handle] - ])); - } else { - this.msgHandlerMap.get(msgId).set(handle.uniqId, handle); - } - return handle; } unRegisterMsgHandle(handle) {