UNPKG

tracker-swarm

Version:

WebRTC tracker server swarm for P2P applications.

70 lines (58 loc) 2.06 kB
<!doctype 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>