<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Buzzers</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="A cool thing made with Glitch"> <link id="favicon" rel="icon" href="https://glitch.com/edit/favicon-app.ico" type="image/x-icon"> <link rel="stylesheet" href="/style.css"> <script src="/script.js" defer></script> </head> <body> <header> <h1>{{room}}</h1> </header> <main> <h2>Participants</h2> {{#each participants}} <figure class="participant" id="p-{{this.participantId}}"> <img src="{{this.character}}" /> <figcaption>{{this.participantName}}</figcaption> </figure> {{/each}} </main> <script> let socket = new WebSocket(`wss://${window.location.hostname}/{{room}}/audience`); socket.onmessage = function(event) { let msg = JSON.parse(event.data); if (msg.type === "buzz") { let buzzed = document.getElementById(`p-${msg.participant.participantId}`); buzzed.classList.add('buzzed'); setTimeout(() => buzzed.classList.remove('buzzed'), 5000) } else if (msg.type === "new_participant") { window.location = window.location; } }; socket.onerror = function(error) { alert(`[error] ${error.message}`); }; </script> </body> </html>