5 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0">
6 <title>Broadcaster
</title>
7 <style type=
"text/css">
8 table.radio-status, td.outer {
12 border-collapse: collapse;
38 <script type=
"text/javascript">
39 function connectWebsocket() {
40 console.log(
"Attempting to create websocket connection for radio status sync")
41 const cookieValue = document.cookie
43 .find((row) =
> row.startsWith(
"broadcast_session="))
45 const socket = new WebSocket(
"/web-ws");
46 socket.addEventListener(
"open", (event) =
> {
47 socket.send(cookieValue);
49 socket.addEventListener(
"message", (event) =
> {
50 console.log(
"Received a status update from server")
51 const connected = document.getElementById('connected-radios');
52 connected.innerHTML = event.data;
54 socket.addEventListener(
"close", (event) =
> {
55 console.log(
"Websocket closed. Will retry in 10 seconds.")
56 setTimeout(connectWebsocket,
10000);
59 // initial connection on page load
67 <p>Your username is: {{.Username}}.
</p>
68 <p><a href=
"/logout">Log Out
</a></p>
70 <p><a href=
"/login">Log In
</a></p>
72 <p><a href=
"/files/">File Management
</a></p>
73 <p><a href=
"/playlists/">Playlist Management
</a></p>
74 <p><a href=
"/radios/">Radio Management
</a></p>
75 <h2>Connected Radios
</h2>
76 <div id=
"connected-radios">