Spaces:
Paused
Paused
| ; | |
| 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; | |