code: function Client(options) {
    var self = this;
  
    // Filers
    this.__filters_in__ = [];
    this.__filters_out__ = [];
  
    // Subscriptions
    this.__subscriptions__ = [];
  
    // Current node id
    this.__node_id__ = Math.floor(Math.random() * 1e10) + 1;
  
    // Message incremental counter
    this.__last_message_cnt__ = 0;
  
    // List of ignoring messages
    this.__ignore_list__ = {};
  
    // Router
    this.__router__ = options.router;
  
    this.__router__.onmessage(function (channel, message) {
      self.__onmessage__(channel, message);
    });
  
    // Lock handlers
    this.__lock_handlers__ = {};
  
    // If client make lock request - store handler and remove it from message
    this.filterOut(function (channel, message, callback) {
      if (channel === '!sys.lock.request') {
        var fn = message.data.fn;
        var lockId = message.data.id;
  
        delete message.data.fn;
  
        // Wrap handler to pass unlock function into it
        self.__lock_handlers__[message.id] = function () {
          fn(function unlock() {
            self.emit('!sys.lock.release', { id: lockId });
          });
        };
      }
  
      callback(channel, message);
    });
  
    // If lock acquired - execute handler
    this.filterIn(function (channel, message, callback) {
      if (channel === '!sys.lock.acquired' && self.__lock_handlers__[message.data.request_id]) {
        self.__lock_handlers__[message.data.request_id]();
        delete self.__lock_handlers__[message.data.request_id];
      }
  
      callback(channel, message);
    });
  }
docs: Client  options:  - router (RouterLS)