Compare commits
2 Commits
638df772fa
...
8640dcdb6f
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | 8640dcdb6f | |
Derrick Hammer | 2465b80441 |
|
@ -46,5 +46,6 @@ export default class DHTCache extends EventEmitter {
|
|||
private _pruneItems;
|
||||
private _heartbeatCheck;
|
||||
private _emitHeartbeat;
|
||||
private _hello;
|
||||
}
|
||||
//# sourceMappingURL=index.d.ts.map
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAYlC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAc1C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAChD,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IACrB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAElC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAa;gBAGtB,KAAK,EAAE,GAAG,EACV,EACE,EAA4B,EAC5B,iBAAsB,EACtB,GAAG,IAAI,EACR,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO;IAyC7C,OAAO,CAAC,MAAM,CAAc;IAE5B,IAAW,KAAK,IAAI,MAAM,EAAE,CAE3B;IAED,IAAW,QAAQ,IAAI,MAAM,EAAE,CAU9B;IAEM,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAOlE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAsBpC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIlB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IA2BjD,OAAO,CAAC,OAAO,CAAc;IAE7B,IAAW,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAE/B;IAEM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAIpC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IAInC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG;IAkClC,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAa3B,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG;IAqBhC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IA6FpD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,cAAc;CA2BvB"}
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAYlC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAc1C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAChD,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IACrB,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAElC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAa;gBAGtB,KAAK,EAAE,GAAG,EACV,EACE,EAA4B,EAC5B,iBAAsB,EACtB,GAAG,IAAI,EACR,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO;IAuC7C,OAAO,CAAC,MAAM,CAAc;IAE5B,IAAW,KAAK,IAAI,MAAM,EAAE,CAE3B;IAED,IAAW,QAAQ,IAAI,MAAM,EAAE,CAU9B;IAEM,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAOlE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAsBpC,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIlB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IA2BjD,OAAO,CAAC,OAAO,CAAc;IAE7B,IAAW,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAE/B;IAEM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAIpC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;IAInC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG;IAkClC,iBAAiB,CAAC,IAAI,EAAE,GAAG;IAa3B,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG;IAqBhC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IA6FpD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,MAAM;CAIf"}
|
|
@ -35,7 +35,7 @@ class DHTCache extends events_1.default {
|
|||
this.flood.on("peer-open", (peer) => this.addPeerHandler(peer));
|
||||
this.flood.on("peer-remove", (peer) => this.removePeerHandler(peer));
|
||||
this.flood.on("message", (message, id) => this.onGetBroadcast(message, id));
|
||||
this.swarm.on("connection", (peer) => this.send(peer, b4a_1.default.from("hello")));
|
||||
this.swarm.on("connection", this._hello.bind(this));
|
||||
[...this.swarm.peers.values()]
|
||||
.map((item) => {
|
||||
remotePublicKey: item.publicKey;
|
||||
|
@ -287,22 +287,30 @@ class DHTCache extends events_1.default {
|
|||
this.graph.removeNode(this._maybeHexify(id));
|
||||
}
|
||||
_bootstrapFrom(bootstrap) {
|
||||
if (this.bootstrapped) {
|
||||
return;
|
||||
}
|
||||
for (const id in bootstrap) {
|
||||
const { connectedTo } = bootstrap[id];
|
||||
if (id === this.id.toString("hex")) {
|
||||
continue;
|
||||
}
|
||||
if (!this.connectedTo.has(id)) {
|
||||
this.swarm.joinPeer(id);
|
||||
}
|
||||
for (const connection of connectedTo) {
|
||||
const peer = b4a_1.default.from(connection);
|
||||
if (b4a_1.default.equals(peer, this.id)) {
|
||||
continue;
|
||||
}
|
||||
this._ensurePeer(peer);
|
||||
this._addEntityConnection(id, peer);
|
||||
if (!this.connectedTo.has(peer.toString("hex"))) {
|
||||
this.swarm.joinPeer(peer);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.bootstrapped) {
|
||||
this.bootstrapped = true;
|
||||
this.emit("bootstrapped");
|
||||
}
|
||||
this._recalculate();
|
||||
}
|
||||
_getBootstrapInfo() {
|
||||
|
@ -426,5 +434,9 @@ class DHTCache extends events_1.default {
|
|||
}));
|
||||
}
|
||||
}
|
||||
_hello(peer) {
|
||||
this.send(peer, b4a_1.default.from("hello"));
|
||||
this.swarm.leavePeer(peer.remotePublicKey);
|
||||
}
|
||||
}
|
||||
exports.default = DHTCache;
|
||||
|
|
28
src/index.ts
28
src/index.ts
|
@ -61,9 +61,7 @@ export default class DHTCache extends EventEmitter {
|
|||
this.flood.on("peer-remove", (peer) => this.removePeerHandler(peer));
|
||||
this.flood.on("message", (message, id) => this.onGetBroadcast(message, id));
|
||||
|
||||
this.swarm.on("connection", (peer: any) =>
|
||||
this.send(peer, b4a.from("hello"))
|
||||
);
|
||||
this.swarm.on("connection", this._hello.bind(this));
|
||||
|
||||
[...this.swarm.peers.values()]
|
||||
.map((item) => {
|
||||
|
@ -398,25 +396,36 @@ export default class DHTCache extends EventEmitter {
|
|||
}
|
||||
|
||||
private _bootstrapFrom(bootstrap: Bootstrap) {
|
||||
if (this.bootstrapped) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (const id in bootstrap) {
|
||||
const { connectedTo } = bootstrap[id];
|
||||
if (id === this.id.toString("hex")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!this.connectedTo.has(id)) {
|
||||
this.swarm.joinPeer(id);
|
||||
}
|
||||
|
||||
for (const connection of connectedTo) {
|
||||
const peer = b4a.from(connection) as Buffer;
|
||||
|
||||
if (b4a.equals(peer, this.id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
this._ensurePeer(peer);
|
||||
this._addEntityConnection(id, peer);
|
||||
|
||||
if (!this.connectedTo.has(peer.toString("hex"))) {
|
||||
this.swarm.joinPeer(peer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.bootstrapped) {
|
||||
this.bootstrapped = true;
|
||||
this.emit("bootstrapped");
|
||||
}
|
||||
|
||||
this._recalculate();
|
||||
}
|
||||
|
@ -574,4 +583,9 @@ export default class DHTCache extends EventEmitter {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
private _hello(peer: any) {
|
||||
this.send(peer, b4a.from("hello"));
|
||||
this.swarm.leavePeer(peer.remotePublicKey);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue