Compare commits
2 Commits
175d66c994
...
21f7f2e67d
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | 21f7f2e67d | |
Derrick Hammer | 2d62822908 |
|
@ -8,12 +8,14 @@ export default class DHTFlood extends EventEmitter {
|
||||||
private messageNumber;
|
private messageNumber;
|
||||||
private lru;
|
private lru;
|
||||||
private swarm;
|
private swarm;
|
||||||
constructor({ lruSize, ttl, messageNumber, id, swarm, }?: {
|
private protocol;
|
||||||
|
constructor({ lruSize, ttl, messageNumber, id, swarm, protocol, }?: {
|
||||||
lruSize?: number | undefined;
|
lruSize?: number | undefined;
|
||||||
ttl?: number | undefined;
|
ttl?: number | undefined;
|
||||||
messageNumber?: number | undefined;
|
messageNumber?: number | undefined;
|
||||||
id?: Buffer | undefined;
|
id?: Buffer | undefined;
|
||||||
swarm?: null | undefined;
|
swarm?: null | undefined;
|
||||||
|
protocol?: string | undefined;
|
||||||
});
|
});
|
||||||
private handleMessage;
|
private handleMessage;
|
||||||
private setupPeer;
|
private setupPeer;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAkBlC,eAAO,MAAM,YAAY,eAAuB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAChD,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAM;gBAEP,EACV,OAAkB,EAClB,GAAS,EACT,aAAiB,EACjB,EAA2B,EAC3B,KAAY,GACb;;;;;;KAAK;IAkBN,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,SAAS;IA6CjB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,SAAW;IAenC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,SAAW;CAY1C"}
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAkBlC,eAAO,MAAM,YAAY,eAAuB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAChD,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,QAAQ,CAAS;gBAEb,EACV,OAAkB,EAClB,GAAS,EACT,aAAiB,EACjB,EAA2B,EAC3B,KAAY,EACZ,QAAmB,GACpB;;;;;;;KAAK;IAmBN,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,SAAS;IA6CjB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,SAAW;IAenC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,SAAW;CAY1C"}
|
|
@ -26,19 +26,21 @@ class DHTFlood extends events_1.default {
|
||||||
messageNumber;
|
messageNumber;
|
||||||
lru;
|
lru;
|
||||||
swarm;
|
swarm;
|
||||||
constructor({ lruSize = LRU_SIZE, ttl = TTL, messageNumber = 0, id = crypto_1.default.randomBytes(32), swarm = null, } = {}) {
|
protocol;
|
||||||
|
constructor({ lruSize = LRU_SIZE, ttl = TTL, messageNumber = 0, id = crypto_1.default.randomBytes(32), swarm = null, protocol = PROTOCOL, } = {}) {
|
||||||
super();
|
super();
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.ttl = ttl;
|
this.ttl = ttl;
|
||||||
this.messageNumber = messageNumber;
|
this.messageNumber = messageNumber;
|
||||||
this.lru = new lru_1.default(lruSize);
|
this.lru = new lru_1.default(lruSize);
|
||||||
|
this.protocol = protocol;
|
||||||
if (!swarm) {
|
if (!swarm) {
|
||||||
throw new Error("swarm is required");
|
throw new Error("swarm is required");
|
||||||
}
|
}
|
||||||
this.swarm = swarm;
|
this.swarm = swarm;
|
||||||
this.swarm.on("connection", (peer) => {
|
this.swarm.on("connection", (peer) => {
|
||||||
const mux = protomux_1.default.from(peer);
|
const mux = protomux_1.default.from(peer);
|
||||||
mux.pair({ protocol: PROTOCOL }, () => this.setupPeer(peer));
|
mux.pair({ protocol: this.protocol }, () => this.setupPeer(peer));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
handleMessage({ originId, messageNumber, ttl, data }, messenger) {
|
handleMessage({ originId, messageNumber, ttl, data }, messenger) {
|
||||||
|
@ -68,7 +70,7 @@ class DHTFlood extends events_1.default {
|
||||||
const self = this;
|
const self = this;
|
||||||
if (!mux.opened({ protocol: PROTOCOL })) {
|
if (!mux.opened({ protocol: PROTOCOL })) {
|
||||||
chan = mux.createChannel({
|
chan = mux.createChannel({
|
||||||
protocol: PROTOCOL,
|
protocol: this.protocol,
|
||||||
async onopen() {
|
async onopen() {
|
||||||
self.emit("peer-open", peer);
|
self.emit("peer-open", peer);
|
||||||
},
|
},
|
||||||
|
|
|
@ -24,6 +24,7 @@ export default class DHTFlood extends EventEmitter {
|
||||||
private messageNumber: number;
|
private messageNumber: number;
|
||||||
private lru: LRU;
|
private lru: LRU;
|
||||||
private swarm: any;
|
private swarm: any;
|
||||||
|
private protocol: string;
|
||||||
|
|
||||||
constructor({
|
constructor({
|
||||||
lruSize = LRU_SIZE,
|
lruSize = LRU_SIZE,
|
||||||
|
@ -31,6 +32,7 @@ export default class DHTFlood extends EventEmitter {
|
||||||
messageNumber = 0,
|
messageNumber = 0,
|
||||||
id = crypto.randomBytes(32),
|
id = crypto.randomBytes(32),
|
||||||
swarm = null,
|
swarm = null,
|
||||||
|
protocol = PROTOCOL,
|
||||||
} = {}) {
|
} = {}) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
@ -38,6 +40,7 @@ export default class DHTFlood extends EventEmitter {
|
||||||
this.ttl = ttl;
|
this.ttl = ttl;
|
||||||
this.messageNumber = messageNumber;
|
this.messageNumber = messageNumber;
|
||||||
this.lru = new LRU(lruSize);
|
this.lru = new LRU(lruSize);
|
||||||
|
this.protocol = protocol;
|
||||||
if (!swarm) {
|
if (!swarm) {
|
||||||
throw new Error("swarm is required");
|
throw new Error("swarm is required");
|
||||||
}
|
}
|
||||||
|
@ -45,7 +48,7 @@ export default class DHTFlood extends EventEmitter {
|
||||||
|
|
||||||
this.swarm.on("connection", (peer: any) => {
|
this.swarm.on("connection", (peer: any) => {
|
||||||
const mux = Protomux.from(peer);
|
const mux = Protomux.from(peer);
|
||||||
mux.pair({ protocol: PROTOCOL }, () => this.setupPeer(peer));
|
mux.pair({ protocol: this.protocol }, () => this.setupPeer(peer));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +94,7 @@ export default class DHTFlood extends EventEmitter {
|
||||||
|
|
||||||
if (!mux.opened({ protocol: PROTOCOL })) {
|
if (!mux.opened({ protocol: PROTOCOL })) {
|
||||||
chan = mux.createChannel({
|
chan = mux.createChannel({
|
||||||
protocol: PROTOCOL,
|
protocol: this.protocol,
|
||||||
async onopen() {
|
async onopen() {
|
||||||
self.emit("peer-open", peer);
|
self.emit("peer-open", peer);
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue