31 lines
824 B
JavaScript
31 lines
824 B
JavaScript
var Command = require('./command');
|
|
var util = require('util');
|
|
var CommandCode = require('../constants/commands');
|
|
var Packet = require('../packets/packet');
|
|
|
|
// TODO: time statistics?
|
|
// usefull for queue size and network latency monitoring
|
|
// store created,sent,reply timestamps
|
|
|
|
function Ping(callback)
|
|
{
|
|
Command.call(this);
|
|
this.onResult = callback;
|
|
}
|
|
util.inherits(Ping, Command);
|
|
|
|
Ping.prototype.start = function(packet, connection) {
|
|
var ping = new Packet(0, new Buffer([0, 0, 0, 0, CommandCode.PING]));
|
|
connection.writePacket(ping);
|
|
return Ping.prototype.pingResponse;
|
|
};
|
|
|
|
Ping.prototype.pingResponse = function(packet) {
|
|
// 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;
|