tracker-swarm
Version:
WebRTC tracker server swarm for P2P applications.
70 lines (58 loc) • 2.06 kB
HTML
<html>
<head>
<title>Bugout with tracker-swarm</title>
<script src="https://chr15m.github.io/bugout/bugout.min.js"></script>
</head>
<body>
<ul id='messageList'>
<div id='username'></div>
<input id="sendMsg" type="text"></input>
<button id="sendBtn">Send</button>
</ul>
</body>
<script>
let appName = 'my awesome app'
let url = 'http://localhost:55501/trackers/?swarm-id=my%20swarm%20id?app-id=my%20app%20id' // replace with your tracker swarm node url
fetch(url)
.then(res => res.json())
.then(trackers => {
bugout(trackers)
})
let username = Array.from(Array(7), () => Math.floor(Math.random() * 36).toString(36)).join('');
document.getElementById('username').textContent = `Your name: ${username}`
function bugout(trackers){
let b = new Bugout(appName, {announce: trackers})
let address = b.address()
console.log("Bugout address:", address)
b.on("connections", connections => {
if(connections === 0){
console.log("Waiting for connections . . . ")
} else {
console.log("Connections: ", connections)
}
})
b.on("message", (address, message) => {
let list = document.getElementById('messageList')
let newMessage = document.createElement('ul')
newMessage.textContent = message
list.appendChild(newMessage)
})
document.getElementById('sendBtn').addEventListener('click', ()=>{
sendMessage()
})
document.addEventListener('keyup', e => {
if (e.keyCode == 13) {
sendMessage()
}
})
function sendMessage(){
let message = document.getElementById('sendMsg').value
if(message.length > 0){
b.send(`${username}: ${message}`)
document.getElementById('sendMsg').value = ''
}
}
}
</script>
</html>