socket.io(node.js)で任意のタイミングで接続,切断,再接続したい場合。

ぐぐった感じ、ほとんどがjs読み込んだ途端に接続して、もし切断したら再接続みたいなのが多い。
(というか、ふつうに使う分にはそれでいいんですが・・)

任意のタイミングで接続、切断をしたかったので下記のような感じで接続してみた。

// 空のsocketを用意
var socket = { on: function(){} };

// 接続
var connect = function() {
    if ( !socket.connected ) {
        // 接続
        socket = io.connect('http://example.com:3000');
    }
    else {
        // 再接続
        socket.connect();
    }

    socket.on('msg',function(mes){
        // msg受信時の処理...
    });
}

// 切断
var disconnect = function(){
    socket.disconnect();
}

connect()を呼んだら接続、disconnect()を読んだら切断。