4 <meta charset="utf-8"/>
5 <title>IID Coffee Terminal</title>
7 function loadServerScript() {
8 let script = document.createElement('script');
9 script.src = "http://localhost:5000/js";
10 document.head.append(script);
11 script.onerror = function() {
12 this.parentElement.removeChild(this);
13 setTimeout(loadServerScript, 10000);
22 console.log("connecting...");
23 socket = new WebSocket(
24 "ws://" + document.domain + ':' + location.port,
25 "merica-terminal-protocol"
28 socket.onopen = function() {
29 console.log("socket open");
30 document.getElementById("inputStatus").innerHTML = "connected";
33 socket.onclose = function() {
34 console.log("socket closed");
35 document.getElementById("inputStatus").innerHTML = "disconnected";
37 setTimeout(connect, 10000);
40 socket.onmessage = function(msg) {
41 updateJSONmsg(msg.data);
42 if (typeof updateRemote === "function") {
43 updateRemote(msg.data);
47 localStorage.setItem(now, msg.data);
48 console.log(now + ": " + msg.data);
56 function updateJSONmsg(msg) {
57 document.getElementById("localJSON").innerHTML = msg;
59 function printLocalStorage() {
62 if (localStorage.length) {
63 for (var i = 0; i < localStorage.length; i++) {
64 output += localStorage.key(i) + ': ' + localStorage.getItem(localStorage.key(i)) + '<br>';
67 output += "nobody here anymore!";
70 output += "localStorage not supported";
73 updateJSONmsg(output);
76 function clearLocalStorage() {
82 function sendReset() {
87 function sendClose() {
95 <h1>IID Coffee Terminal</h1>
98 <div id="remote"><center>No data from server.</center></div>
104 <button onclick="sendReset()">reset</button>
105 <span style="display:inline-block; width: 20pt;"></span>
106 <button onclick="sendClose()">close</button>
107 <span style="display:inline-block; width: 20pt;"></span>
108 <button onclick="printLocalStorage()">storage</button>
109 <span style="display:inline-block; width: 20pt;"></span>
110 <button onclick="clearLocalStorage()">clear</button>
111 <span style="display:inline-block; width: 20pt;"></span>
112 <button onclick="location.reload()">reload</button>
113 <p>Input: <span id="inputStatus"></span>, JSON message: <span id="localJSON">no data received</span></p>