code: function(err, code) {
            if (err) {
              code = code || 'unknown';
              var error = new UnauthorizedError(code, {
                message: (Object.prototype.toString.call(err) === '[object Object]' && err.message) ? err.message : err
              });
              var callback_timeout;
              // If callback explicitely set to false, start timeout to disconnect socket
              if (options.callback === false || typeof options.callback === "number") {
                if (typeof options.callback === "number") {
                  if (options.callback < 0) {
                    // If callback is negative(invalid value), make it positive
                    options.callback = Math.abs(options.callback);
                  }
                }
                callback_timeout = setTimeout(function () {
                  socket.disconnect('unauthorized');
                }, (options.callback === false ? 0 : options.callback));
              }
              socket.emit('unauthorized', error, function() {
                if (typeof options.callback === "number") {
                  clearTimeout(callback_timeout);
                }
                socket.disconnect('unauthorized');
              });
              return; // stop logic, socket will be close on next tick
            }
        }
docs: error handler