2018-10-19 17:37:34 +02:00
|
|
|
/* eslint-disable no-console */
|
2017-07-04 11:43:45 +01:00
|
|
|
'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) => {})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|