@leofcoin/peernet 1.1.18 → 1.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/exports/browser/{client-033977a1.js → client-ede3dfc2.js} +25 -16
- package/exports/browser/{index-123daa04.js → index-3efb868f.js} +1 -1
- package/exports/browser/{messages-5ddc1083.js → messages-86fd79b4.js} +1 -1
- package/exports/browser/{peernet-ea3ab655.js → peernet-b366d9d4.js} +4249 -145
- package/exports/browser/peernet.js +1 -1
- package/exports/peernet.js +20 -10
- package/package.json +1 -1
- package/src/peernet.ts +20 -8
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { P as default } from './peernet-
|
|
1
|
+
export { P as default } from './peernet-b366d9d4.js';
|
|
2
2
|
import './value-157ab062.js';
|
package/exports/peernet.js
CHANGED
|
@@ -483,7 +483,7 @@ class Peernet {
|
|
|
483
483
|
* @return {Array} peerId
|
|
484
484
|
*/
|
|
485
485
|
get peers() {
|
|
486
|
-
return Object.
|
|
486
|
+
return Object.entries(this.#connections);
|
|
487
487
|
}
|
|
488
488
|
get connections() {
|
|
489
489
|
return Object.values(this.#connections);
|
|
@@ -559,18 +559,19 @@ class Peernet {
|
|
|
559
559
|
pubsub.publish('peer:connected', peer);
|
|
560
560
|
// todo: cleanup discovered
|
|
561
561
|
});
|
|
562
|
+
pubsub.subscribe('peer:left', this.#peerLeft.bind(this));
|
|
562
563
|
/**
|
|
563
564
|
* converts data -> message -> proto
|
|
564
565
|
* @see DataHandler
|
|
565
566
|
*/
|
|
566
567
|
pubsub.subscribe('peer:data', dataHandler);
|
|
567
568
|
if (globalThis.navigator) {
|
|
568
|
-
globalThis.addEventListener('beforeunload', async () => this.client.
|
|
569
|
+
globalThis.addEventListener('beforeunload', async () => this.client.destroy());
|
|
569
570
|
}
|
|
570
571
|
else {
|
|
571
572
|
process.on('SIGTERM', async () => {
|
|
572
573
|
process.stdin.resume();
|
|
573
|
-
await this.client.
|
|
574
|
+
await this.client.destroy();
|
|
574
575
|
process.exit();
|
|
575
576
|
});
|
|
576
577
|
}
|
|
@@ -591,16 +592,25 @@ class Peernet {
|
|
|
591
592
|
this.#started = true;
|
|
592
593
|
this.#starting = false;
|
|
593
594
|
}
|
|
595
|
+
#peerLeft(peer) {
|
|
596
|
+
for (const [id, _peer] of Object.entries(this.#connections)) {
|
|
597
|
+
if (peer.id === peer.id) {
|
|
598
|
+
delete this.#connections[id];
|
|
599
|
+
this.removePeer(_peer);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
594
603
|
addRequestHandler(name, method) {
|
|
595
604
|
this.requestProtos[name] = method;
|
|
596
605
|
}
|
|
597
606
|
async sendMessage(peer, id, data) {
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
607
|
+
if (peer.readyState === 'open') {
|
|
608
|
+
await peer.send(data, id);
|
|
609
|
+
this.bw.up += data.length;
|
|
610
|
+
}
|
|
611
|
+
else if (peer.readyState === 'closed') {
|
|
612
|
+
this.removePeer(peer);
|
|
613
|
+
}
|
|
604
614
|
}
|
|
605
615
|
async handleDHT(peer, id, proto) {
|
|
606
616
|
let { hash, store } = proto.decoded;
|
|
@@ -1004,7 +1014,7 @@ class Peernet {
|
|
|
1004
1014
|
globalSub.subscribe(topic, callback);
|
|
1005
1015
|
}
|
|
1006
1016
|
async removePeer(peer) {
|
|
1007
|
-
return this.client.
|
|
1017
|
+
return this.client._removePeer(peer);
|
|
1008
1018
|
}
|
|
1009
1019
|
get Buffer() {
|
|
1010
1020
|
return Buffer;
|
package/package.json
CHANGED
package/src/peernet.ts
CHANGED
|
@@ -136,7 +136,7 @@ export default class Peernet {
|
|
|
136
136
|
* @return {Array} peerId
|
|
137
137
|
*/
|
|
138
138
|
get peers() {
|
|
139
|
-
return Object.
|
|
139
|
+
return Object.entries(this.#connections)
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
get connections() {
|
|
@@ -242,6 +242,8 @@ export default class Peernet {
|
|
|
242
242
|
// todo: cleanup discovered
|
|
243
243
|
})
|
|
244
244
|
|
|
245
|
+
pubsub.subscribe('peer:left', this.#peerLeft.bind(this))
|
|
246
|
+
|
|
245
247
|
/**
|
|
246
248
|
* converts data -> message -> proto
|
|
247
249
|
* @see DataHandler
|
|
@@ -249,11 +251,11 @@ export default class Peernet {
|
|
|
249
251
|
pubsub.subscribe('peer:data', dataHandler)
|
|
250
252
|
|
|
251
253
|
if (globalThis.navigator) {
|
|
252
|
-
globalThis.addEventListener('beforeunload', async () => this.client.
|
|
254
|
+
globalThis.addEventListener('beforeunload', async () => this.client.destroy());
|
|
253
255
|
} else {
|
|
254
256
|
process.on('SIGTERM', async () => {
|
|
255
257
|
process.stdin.resume();
|
|
256
|
-
await this.client.
|
|
258
|
+
await this.client.destroy()
|
|
257
259
|
process.exit()
|
|
258
260
|
});
|
|
259
261
|
}
|
|
@@ -275,18 +277,28 @@ export default class Peernet {
|
|
|
275
277
|
this.#starting = false
|
|
276
278
|
}
|
|
277
279
|
|
|
280
|
+
#peerLeft(peer) {
|
|
281
|
+
for (const [id, _peer] of Object.entries(this.#connections)) {
|
|
282
|
+
if (peer.id === peer.id) {
|
|
283
|
+
delete this.#connections[id]
|
|
284
|
+
this.removePeer(_peer)
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
}
|
|
289
|
+
|
|
278
290
|
addRequestHandler(name, method) {
|
|
279
291
|
this.requestProtos[name] = method
|
|
280
292
|
}
|
|
281
293
|
|
|
282
294
|
async sendMessage(peer, id, data) {
|
|
283
295
|
|
|
284
|
-
|
|
296
|
+
if (peer.readyState === 'open') {
|
|
285
297
|
await peer.send(data, id)
|
|
286
298
|
this.bw.up += data.length
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
299
|
+
} else if (peer.readyState === 'closed') {
|
|
300
|
+
this.removePeer(peer)
|
|
301
|
+
}
|
|
290
302
|
|
|
291
303
|
}
|
|
292
304
|
|
|
@@ -712,7 +724,7 @@ export default class Peernet {
|
|
|
712
724
|
}
|
|
713
725
|
|
|
714
726
|
async removePeer(peer) {
|
|
715
|
-
return this.client.
|
|
727
|
+
return this.client._removePeer(peer)
|
|
716
728
|
}
|
|
717
729
|
|
|
718
730
|
get Buffer() {
|