123456789101112131415161718192021222324252627282930313233343536 |
- 'use strict';
- 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;
|