如何使用浏览器做lookups/get DHT数据

How to do lookups/get DHT data using the browser

我在 node.js 中有以下工作来做基本的 DHT putget。我稍后可以通过仅使用 get 方法并传入先前创建的 infohash 来检索相同的 DHT。接下来我想做的是在浏览器中查找 DHT,但我在浏览器化方面没有取得任何成功。是否有任何浏览器库可以通过查找信息哈希来读取 DHT 数据?

// Emitter
var EventEmitter = require('events').EventEmitter;
var util = require('util');
util.inherits(emitter, EventEmitter);
function emitter(){
    var self = this;
}
let e = new emitter()

//DHT
const DHT = require('bittorrent-dht')

const dht = new DHT()

let data = 'Some cool new data'

const value = Buffer.from(data, 'utf8')

dht.put({ v: value }, function (err, hash) {
  if(err) console.error('Error:', err)
  let arr = dht.toJSON()
  let infoHash = Object.getOwnPropertyNames(arr.values).toString()
  console.log(infoHash)

  e.emit('hash', infoHash)
})

e.on('hash', infoHash => {
    dht.get(infoHash, (err, res) => {
        if(err) console.log(err)
        let data = res.v.toString()
        console.log(data)
    })
})

我知道 WebTorrent 使用 bittorrent-dht,但我不太确定我将如何为此目的使用 WebTorrent

bittorrent DHT 需要纯 UDP 套接字才能工作。目前没有提供该功能的Web API,因此无法在网页中实现。