send a ping to test

This commit is contained in:
Chris Marsh
2017-07-18 14:49:44 -07:00
parent 29641da939
commit 0d6282fe33
3 changed files with 29 additions and 3 deletions

View File

@ -6,6 +6,8 @@ const OPCODES = {
HANDSHAKE: 0,
FRAME: 1,
CLOSE: 2,
PING: 3,
PONG: 4,
};
let PipePath;
@ -47,9 +49,17 @@ class RpcMessage {
return RpcMessage.serialize(opcode, {code, message});
}
static sendPing(message) {
const opcode = OPCODES.PING;
return RpcMessage.serialize(opcode, {message});
}
static deserialize(buff) {
const opcode = buff.readInt32LE(0);
const msgLen = buff.readInt32LE(4);
if (msgLen == 0) {
return {opcode, data: ''};
}
if (buff.length < (msgLen + 8)) {
return null;
}

View File

@ -58,3 +58,18 @@ replServer.defineCommand('kill', {
}
});
replServer.defineCommand('ping', {
help: 'Ping all clients',
action() {
this.bufferedCommand = '';
Object.keys(global.connections).forEach((who) => {
const sock = global.connections[who];
if (sock) {
console.log('pinging', who);
sock.write(RpcMessage.sendPing('hello'));
}
})
this.displayPrompt();
}
});