添加用户输入消息支持
This commit is contained in:
parent
9b7ce4eb86
commit
b0ce39ec54
@ -1,3 +1,4 @@
|
|||||||
|
const readline = require('readline');
|
||||||
const protobuf = require('protobufjs');
|
const protobuf = require('protobufjs');
|
||||||
const ws = require('nodejs-websocket');
|
const ws = require('nodejs-websocket');
|
||||||
|
|
||||||
@ -19,6 +20,13 @@ class ClientNet {
|
|||||||
this.recvBuf = Buffer.alloc(0);
|
this.recvBuf = Buffer.alloc(0);
|
||||||
this.uniqId = 1000;
|
this.uniqId = 1000;
|
||||||
this.msgHandlerMap = new Map();
|
this.msgHandlerMap = new Map();
|
||||||
|
this.rl = readline.createInterface({
|
||||||
|
input: process.stdin,
|
||||||
|
//output: process.stdout
|
||||||
|
});
|
||||||
|
this.rl.on("line", (line)=> {
|
||||||
|
this.parseCmdLine(line);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
selfRegisterMsgHandle(msgName) {
|
selfRegisterMsgHandle(msgName) {
|
||||||
@ -174,6 +182,35 @@ class ClientNet {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parseCmdLine(line) {
|
||||||
|
const params = line.split(' ');
|
||||||
|
if (params.length <= 0) {
|
||||||
|
console.log('unknown command');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const msgName = params[0];
|
||||||
|
const msgFields = params.slice(1);
|
||||||
|
const msgType = this.protoPb.lookupType(msgName);
|
||||||
|
if (!msgType) {
|
||||||
|
console.log('unknown command');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const msg = {};
|
||||||
|
for (let i = 0; i < msgType.fieldsArray.length; ++i) {
|
||||||
|
if (i < msgFields.length) {
|
||||||
|
const name = msgType.fieldsArray[i].name;
|
||||||
|
const type = msgType.fieldsArray[i].type;
|
||||||
|
if (['int32', 'int', 'float', 'double'].indexOf(type) >= 0) {
|
||||||
|
msg[name] = Number(msgFields[i]);
|
||||||
|
} else {
|
||||||
|
msg[name] = msgFields[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(msg);
|
||||||
|
this.sendMsg(msgName, msg);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = ClientNet;
|
module.exports = ClientNet;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user