コード例 #1
0
ファイル: index.js プロジェクト: SeanAvery/restfulAPI
  this.dialByMultiaddr = (maddr, protocol, callback) => {
    if (typeof protocol === 'function') {
      callback = protocol
      protocol = undefined
    }

    if (!isOnline) {
      return callback(new Error(OFFLINE_ERROR_MESSAGE))
    }

    if (typeof maddr === 'string') {
      maddr = multiaddr(maddr)
    }

    if (!mafmt.IPFS.matches(maddr.toString())) {
      return callback(new Error('multiaddr not valid'))
    }

    const ipfsIdB58String = maddr.stringTuples().filter((tuple) => {
      if (tuple[0] === IPFS_CODE) {
        return true
      }
    })[0][1]

    let peer
    try {
      peer = this.peerBook.getByB58String(ipfsIdB58String)
    } catch (err) {
      peer = new PeerInfo(PeerId.createFromB58String(ipfsIdB58String))
    }

    peer.multiaddr.add(maddr)
    this.dialByPeerInfo(peer, protocol, callback)
  }
コード例 #2
0
ファイル: index.js プロジェクト: SeanAvery/restfulAPI
  this.hangUpByMultiaddr = (maddr, callback) => {
    if (!isOnline) {
      return callback(new Error(OFFLINE_ERROR_MESSAGE))
    }

    if (typeof maddr === 'string') {
      maddr = multiaddr(maddr)
    }

    if (!mafmt.IPFS.matches(maddr.toString())) {
      return callback(new Error('multiaddr not valid'))
    }

    const ipfsIdB58String = maddr.stringTuples().filter((tuple) => {
      if (tuple[0] === IPFS_CODE) {
        return true
      }
    })[0][1]

    try {
      const pi = this.peerBook.getByB58String(ipfsIdB58String)
      this.hangUpByPeerInfo(pi, callback)
    } catch (err) {
      // already disconnected
      callback()
    }
  }