Skip to content

Commit 9518eb4

Browse files
authored
docs: improve browser example connectability (#240)
1 parent 0b75f99 commit 9518eb4

File tree

3 files changed

+31
-8
lines changed

3 files changed

+31
-8
lines changed

examples/libp2p-in-the-browser/1/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@
1717
},
1818
"dependencies": {
1919
"detect-dom-ready": "^1.0.2",
20+
"libp2p-bootstrap": "~0.9.3",
2021
"libp2p-mplex": "~0.8.0",
21-
"libp2p-railing": "~0.9.1",
2222
"libp2p-secio": "~0.10.0",
2323
"libp2p-spdy": "~0.12.1",
2424
"libp2p-webrtc-star": "~0.15.3",
25+
"libp2p-websocket-star": "~0.8.1",
2526
"libp2p-websockets": "~0.12.0",
2627
"peer-info": "~0.14.1"
2728
}

examples/libp2p-in-the-browser/1/src/browser-bundle.js

+12-5
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
const WebRTCStar = require('libp2p-webrtc-star')
44
const WebSockets = require('libp2p-websockets')
5+
const WebSocketStar = require('libp2p-websocket-star')
56
const Mplex = require('libp2p-mplex')
67
const SPDY = require('libp2p-spdy')
78
const SECIO = require('libp2p-secio')
8-
const Bootstrap = require('libp2p-railing')
9+
const Bootstrap = require('libp2p-bootstrap')
910
const defaultsDeep = require('@nodeutils/defaults-deep')
1011
const libp2p = require('../../../../')
1112

@@ -26,12 +27,14 @@ const bootstrapers = [
2627
class Node extends libp2p {
2728
constructor (_options) {
2829
const wrtcStar = new WebRTCStar({ id: _options.peerInfo.id })
30+
const wsstar = new WebSocketStar({ id: _options.peerInfo.id })
2931

3032
const defaults = {
3133
modules: {
3234
transport: [
3335
wrtcStar,
34-
new WebSockets()
36+
WebSockets,
37+
wsstar
3538
],
3639
streamMuxer: [
3740
Mplex,
@@ -42,6 +45,7 @@ class Node extends libp2p {
4245
],
4346
peerDiscovery: [
4447
wrtcStar.discovery,
48+
wsstar.discovery,
4549
Bootstrap
4650
]
4751
},
@@ -55,21 +59,24 @@ class Node extends libp2p {
5559
},
5660
bootstrap: {
5761
interval: 10000,
58-
enabled: false,
62+
enabled: true,
5963
list: bootstrapers
6064
}
6165
},
6266
relay: {
63-
enabled: false,
67+
enabled: true,
6468
hop: {
65-
enabled: false,
69+
enabled: true,
6670
active: false
6771
}
6872
},
6973
EXPERIMENTAL: {
7074
dht: false,
7175
pubsub: false
7276
}
77+
},
78+
connectionManager: {
79+
maxPeers: 50
7380
}
7481
}
7582

examples/libp2p-in-the-browser/1/src/index.js

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
/* eslint-disable no-console */
1+
/* eslint no-console: ["error", { allow: ["log"] }] */
2+
/* eslint max-nested-callbacks: ["error", 5] */
23
'use strict'
34

45
const domReady = require('detect-dom-ready')
@@ -13,13 +14,27 @@ domReady(() => {
1314
return console.log('Could not create the Node, check if your browser has WebRTC Support', err)
1415
}
1516

17+
let connections = {}
18+
1619
node.on('peer:discovery', (peerInfo) => {
1720
console.log('Discovered a peer')
1821
const idStr = peerInfo.id.toB58String()
1922
console.log('Discovered: ' + idStr)
23+
if (connections[idStr]) {
24+
// If we're already trying to connect to this peer, dont dial again
25+
return
26+
}
2027

28+
connections[idStr] = true
2129
node.dial(peerInfo, (err, conn) => {
22-
if (err) { return console.log('Failed to dial:', idStr) }
30+
let timeToNextDial = 0
31+
if (err) {
32+
// Prevent immediate connection retries from happening
33+
timeToNextDial = 30 * 1000
34+
console.log('Failed to dial:', idStr)
35+
}
36+
37+
setTimeout(() => delete connections[idStr], timeToNextDial)
2338
})
2439
})
2540

0 commit comments

Comments
 (0)