mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-01 05:22:14 +00:00
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
|
'use strict'
|
||
|
|
||
|
const domReady = require('detect-dom-ready')
|
||
|
const createNode = require('./create-node')
|
||
|
|
||
|
domReady(() => {
|
||
|
const myPeerDiv = document.getElementById('my-peer')
|
||
|
const swarmDiv = document.getElementById('swarm')
|
||
|
|
||
|
createNode((err, node) => {
|
||
|
if (err) {
|
||
|
return console.log('Could not create the Node, check if your browser has WebRTC Support', err)
|
||
|
}
|
||
|
|
||
|
node.on('peer:discovery', (peerInfo) => {
|
||
|
console.log('Discovered a peer')
|
||
|
const idStr = peerInfo.id.toB58String()
|
||
|
console.log('Discovered: ' + idStr)
|
||
|
|
||
|
node.dial(peerInfo, (err, conn) => {
|
||
|
if (err) { return console.log('Failed to dial:', idStr) }
|
||
|
})
|
||
|
})
|
||
|
|
||
|
node.on('peer:connect', (peerInfo) => {
|
||
|
const idStr = peerInfo.id.toB58String()
|
||
|
console.log('Got connection to: ' + idStr)
|
||
|
const connDiv = document.createElement('div')
|
||
|
connDiv.innerHTML = 'Connected to: ' + idStr
|
||
|
connDiv.id = idStr
|
||
|
swarmDiv.append(connDiv)
|
||
|
})
|
||
|
|
||
|
node.on('peer:disconnect', (peerInfo) => {
|
||
|
const idStr = peerInfo.id.toB58String()
|
||
|
console.log('Lost connection to: ' + idStr)
|
||
|
document.getElementById(idStr).remove()
|
||
|
})
|
||
|
|
||
|
node.start((err) => {
|
||
|
if (err) {
|
||
|
return console.log('WebRTC not supported')
|
||
|
}
|
||
|
|
||
|
const idStr = node.peerInfo.id.toB58String()
|
||
|
|
||
|
const idDiv = document
|
||
|
.createTextNode('Node is ready. ID: ' + idStr)
|
||
|
|
||
|
myPeerDiv.append(idDiv)
|
||
|
|
||
|
console.log('Node is listening o/')
|
||
|
|
||
|
// NOTE: to stop the node
|
||
|
// node.stop((err) => {})
|
||
|
})
|
||
|
})
|
||
|
})
|