code: function init(entry, target, command, data) {  // {{{2
  /**
   * Socket constructor
   *
   * @param entry {Object} Source entry
   * @param target {Number|String|Object} Target entry identification
   * @param command {String} Command name
   * @param [data] {*} Optional data
   *
   * @method constructor
   */
  
    this.entry = entry;
    this.command = command;
    this.target = target;
  
    this.data = data || {};
    if (! this.data.entry) {
      this.data.entry = entry.getIdent();
    }
    if (! this.data.caption) {
      this.data.caption = entry.getCaption();
    }
  
    switch (typeof target) {
    case 'number':
    case 'string':
      this.shard = entry.shard;
      this.targetId = target;
      return connect(this);
    case 'object':
      return connect(this);
    }
  
    throw O.log.error(entry, 'INVALID_ARGS', arguments);
  }
docs: Target shard
  
  @property shard
  @type Object
   Public {{{1