From a9f58deb93ee5be2408fd6531c5bfcffa41a9199 Mon Sep 17 00:00:00 2001 From: Nick Martin Date: Mon, 9 Jan 2012 14:42:42 -0800 Subject: [PATCH] Cleanup socket a little more aggressively. Hopefully fixes hanging connection bug. --- packages/stream/stream_client.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/stream/stream_client.js b/packages/stream/stream_client.js index 6eac638026..f7e86985cb 100644 --- a/packages/stream/stream_client.js +++ b/packages/stream/stream_client.js @@ -107,13 +107,18 @@ if (typeof Sky === "undefined") Sky = {}; } retry_later(); // sets status. no need to do it here. }; + var cleanup_socket = function () { + if (socket) { + socket.removeAllListeners('connect'); + socket.removeAllListeners('disconnect'); + socket.removeAllListeners('connect_failed'); + socket.disconnect(); + } + }; var fake_connect_failed = function () { // sometimes socket.io just doesn't tell us when it failed. we // detect this with a timer and force failure. - socket.removeAllListeners('connect'); - socket.removeAllListeners('disconnect'); - socket.removeAllListeners('connect_failed'); - socket.disconnect(); + cleanup_socket(); disconnected(); }; @@ -147,7 +152,7 @@ if (typeof Sky === "undefined") Sky = {}; }; var launch_connection = function () { - // XXX if existing socket, any cleanup we have to do? + cleanup_socket(); // cleanup the old socket. socket = io.connect('/', { reconnect: false, 'connect timeout': CONNECT_TIMEOUT,