3 <title>Merica Terminal</title>
4 <script type="text/javascript" src="//dejvice.merica.cz:5000/js" async></script>
6 var socket = new WebSocket(
7 "ws://" + document.domain + ':' + location.port,
8 "merica-terminal-protocol"
11 function updateLocal(msg) {
12 document.getElementById("localJSON").innerHTML = msg;
15 socket.onopen = function() {
16 console.log("socket open");
17 updateLocal("socket open");
20 socket.onclose = function() {
21 console.log("socket closed");
22 updateLocal("socket closed");
25 socket.onmessage = function(msg) {
26 updateLocal(msg.data);
27 if (typeof updateRemote === "function") {
28 updateRemote(msg.data);
32 localStorage.setItem(now, msg.data);
33 console.log(now + ": " + msg.data);
38 function printLocalStorage() {
41 if (localStorage.length) {
42 for (var i = 0; i < localStorage.length; i++) {
43 output += localStorage.key(i) + ': ' + localStorage.getItem(localStorage.key(i)) + '<br>';
46 output += "nobody here anymore!";
49 output += "localStorage not supported";
55 function clearLocalStorage() {
61 function sendReset() {
66 function sendClose() {
76 <h1>Merica Terminal</h1>
77 <button onclick="sendReset()">reset</button>
78 <span style="display:inline-block; width: 20pt;"></span>
79 <button onclick="sendClose()">close</button>
80 <span style="display:inline-block; width: 20pt;"></span>
81 <button onclick="printLocalStorage()">storage</button>
82 <span style="display:inline-block; width: 20pt;"></span>
83 <button onclick="clearLocalStorage()">clear</button>
84 <span style="display:inline-block; width: 20pt;"></span>
85 <button onclick="location.reload()">reload</button>
86 <p id="localJSON">no data received</p>
90 <div id="remote"><center>all alone in a danger zone...</center></div>