UNPKG

diffusion

Version:

Diffusion JavaScript client

37 lines (28 loc) 1.05 kB
var _implements = require('util/interface')._implements; var Ping = require('../../features/ping'); var Services = require('services/services'); var Emitter = require('events/emitter'); var Result = require('events/result'); module.exports = _implements(Ping, function PingImpl(internal, currentTime) { currentTime = currentTime || Date.now; var ping = internal.getServiceLocator().obtain(Services.USER_PING); this.pingServer = function() { var emitter = new Emitter(); var result = new Result(emitter); if (internal.checkConnected(emitter)) { var start = currentTime(); ping.send(null, function(err) { if (err) { emitter.error(err); } else { var elapsed = currentTime() - start; emitter.emit('complete', { timestamp : start, rtt : elapsed }); } }); } return result; }; });