Only measure latency when websocket seems idle

pull/313/head
Lennart Kats 2016-06-01 12:33:26 +00:00
rodzic 13a0c73eb8
commit cf1c2cf6d8
2 zmienionych plików z 12 dodań i 1 usunięć

Wyświetl plik

@ -9,6 +9,7 @@ define(function(require, exports, module) {
var Plugin = imports.Plugin;
var c9 = imports.c9;
var ext = imports.ext;
var vfs = imports.vfs;
/***** Initialization *****/
@ -61,6 +62,9 @@ define(function(require, exports, module) {
}
if (!api) return callback(new Error("Client is offline"));
if (!vfs.isIdle())
return vfs.connection.once("message", ping.bind(null, callback));
var start = Date.now();
api.ping("serverTime", function(err, response) {

Wyświetl plik

@ -329,6 +329,11 @@ define(function(require, exports, module) {
bufferedVfsCalls.push([method, path, options, callback]);
}
function isIdle() {
return !Object.keys(connection.unacked).length &&
consumer && !Object.keys(consumer.callbacks || {}).length;
}
/***** Lifecycle *****/
plugin.on("load", function(){
@ -429,7 +434,9 @@ define(function(require, exports, module) {
// Extending the API
use: vfsCall.bind(null, "use"),
extend: vfsCall.bind(null, "extend"),
unextend: vfsCall.bind(null, "unextend")
unextend: vfsCall.bind(null, "unextend"),
isIdle: isIdle,
});
register(null, {