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

Wyświetl plik

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