sock.pipe(wire).pipe(sock) wire.use(ut_metadata()) wire.handshake(hash, generateId()) wire.on('handshake', (h, peer) => { wire.ut_metadata.fetch() }) wire.ut_metadata.on('warning', (err) => { sock.end() }) wire.ut_metadata.on('metadata', m => { metadata = m callback && callback(null, metadata)
const wire = new Protocol(); socket.pipe(wire).pipe(socket); wire.use(ut_metadata()); wire.on('handshake', function (infohash, peerId) { if (this.semaphore != 0) wire.ut_metadata.fetch(); }); wire.ut_metadata.on('metadata', function (rawMetadata) { if (this.semaphore != 0) { this._unregister(); wire.handshake(infohash, this.selfID, { dht: true });