From 86ac0ec42bf50c94d80ce5620d545eec46aae611 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 19 Jun 2016 16:06:56 +0400 Subject: [PATCH] better cleanup after destroying reconnect socket --- node_modules/kaefer/lib/client.js | 9 +++++++++ plugins/c9.vfs.client/vfs_client.js | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/node_modules/kaefer/lib/client.js b/node_modules/kaefer/lib/client.js index 3f6bd7f0..289fbd81 100644 --- a/node_modules/kaefer/lib/client.js +++ b/node_modules/kaefer/lib/client.js @@ -50,6 +50,9 @@ var connectClient = module.exports = function(connectEio, options) { }); eioSocket.on("message", function handshakeReply(msg) { + if (reconnectSocket.destroying) return; + if (reconnectSocket.socket && reconnectSocket.socket != eioSocket) + return console.error("reconenct for detached socket"); try { msg = JSON.parse(msg); } catch (e) {} @@ -75,11 +78,17 @@ var connectClient = module.exports = function(connectEio, options) { }); eioSocket.on("error", function(e) { + if (reconnectSocket.destroying) return; + if (reconnectSocket.socket && reconnectSocket.socket != eioSocket) + return console.error("reconenct for detached socket"); console.error("Socket error; reconnecting:", e); eioSocket.close(); reconnect(); }); eioSocket.on("close", function(e) { + if (reconnectSocket.destroying) return; + if (reconnectSocket.socket && reconnectSocket.socket != eioSocket) + return console.error("reconenct for detached socket"); console.error("Socket close; reconnecting:", e); reconnect(); }); diff --git a/plugins/c9.vfs.client/vfs_client.js b/plugins/c9.vfs.client/vfs_client.js index 9badea1b..dd0c974c 100644 --- a/plugins/c9.vfs.client/vfs_client.js +++ b/plugins/c9.vfs.client/vfs_client.js @@ -345,7 +345,8 @@ define(function(require, exports, module) { }); plugin.on("unload", function(){ loaded = false; - + if (connection && connection.socket) + connection.socket.destroying = true; if (consumer) consumer.disconnect(); if (connection)