From 13a0c73eb84b3c906b477be30dcc920cfc82d0db Mon Sep 17 00:00:00 2001 From: Lennart Kats Date: Wed, 1 Jun 2016 12:32:35 +0000 Subject: [PATCH 1/2] Cleanup --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a7d8009..cfef610f 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "c9.ide.language.javascript.eslint": "#4de5457db1", "c9.ide.language.javascript.tern": "#64ab01f271", "c9.ide.language.javascript.infer": "#69fbc134d6", - "c9.ide.language.jsonalyzer": "#d8183d84b4", + "c9.ide.language.jsonalyzer": "#ce973ed167", "c9.ide.language.codeintel": "#fc867feec4", "c9.ide.collab": "#cfbf987438", "c9.ide.local": "#10eb45842a", From cf1c2cf6d88d05215bf377f96bebbfec71396962 Mon Sep 17 00:00:00 2001 From: Lennart Kats Date: Wed, 1 Jun 2016 12:33:26 +0000 Subject: [PATCH 2/2] Only measure latency when websocket seems idle --- plugins/c9.vfs.client/vfs.ping.js | 4 ++++ plugins/c9.vfs.client/vfs_client.js | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/c9.vfs.client/vfs.ping.js b/plugins/c9.vfs.client/vfs.ping.js index 4e02ade7..05bdbc9c 100644 --- a/plugins/c9.vfs.client/vfs.ping.js +++ b/plugins/c9.vfs.client/vfs.ping.js @@ -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) { diff --git a/plugins/c9.vfs.client/vfs_client.js b/plugins/c9.vfs.client/vfs_client.js index 0fb2d9c6..9ca3bf84 100644 --- a/plugins/c9.vfs.client/vfs_client.js +++ b/plugins/c9.vfs.client/vfs_client.js @@ -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, {