 
         return @sockets[socketId].beginGroup group if @isConnected socketId
 
-        @sockets[socketId].on "connect", =>
+        @sockets[socketId].once "connect", =>
             @sockets[socketId].beginGroup group
         @sockets[socketId].connect()
 

        if socketId is null
            @sockets.forEach (socket) ->
                socket.disconnect()
            return     

        return unless @sockets[socketId]
        @sockets[socketId].disconnect()

        if socketId is null
            @sockets.forEach (socket) ->
                socket.disconnect()
            return

        unless @sockets[socketId]
            throw new Error "No socket '#{socketId}' available"
