Spaces:
Running
Running
; | |
const Command = require('./command'); | |
const CommandCode = require('../constants/commands'); | |
const Packet = require('../packets/packet'); | |
// TODO: time statistics? | |
// usefull for queue size and network latency monitoring | |
// store created,sent,reply timestamps | |
class Ping extends Command { | |
constructor(callback) { | |
super(); | |
this.onResult = callback; | |
} | |
start(packet, connection) { | |
const ping = new Packet( | |
0, | |
Buffer.from([1, 0, 0, 0, CommandCode.PING]), | |
0, | |
5 | |
); | |
connection.writePacket(ping); | |
return Ping.prototype.pingResponse; | |
} | |
pingResponse() { | |
// TODO: check it's OK packet. error check already done in caller | |
if (this.onResult) { | |
process.nextTick(this.onResult.bind(this)); | |
} | |
return null; | |
} | |
} | |
module.exports = Ping; | |