问题描述
我在 node.js 中有以下工作来执行基本的 DHT put
和 get
。我稍后可以通过仅使用 get
方法并传入先前创建的 infohash 来检索相同的 DHT。我接下来想做的是在浏览器中查找该 DHT,但我在浏览器化方面没有任何成功。是否有任何用于浏览器的库可以通过查找 infohash 来读取 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,因此无法在网页中实现。