var ws_addr = 'wss://'+window.location.host+"/sandbox/pipe", sock = null, //shell = document.getElementById("shell"), authors = document.getElementById("authors"), title = document.getElementById("title"), connections = document.getElementById("connections"); var delay = 10 * 1000; function showtitle(t) { setTimeout(function () { title.innerHTML = t; }, delay); } function showauthors(a) { setTimeout(function () { authors.innerHTML = a; }, delay); } function connect () { sock = new WebSocket(ws_addr); sock.onopen = function (event) { console.log("socket opened"); document.body.classList.add("connected"); // sock.send(JSON.stringify({ // src: "connect", // })); }; sock.onmessage = function (event) { // console.log("message", event); if (typeof(event.data) == "string") { var msg = JSON.parse(event.data); // console.log("message JSON", msg); if (msg.src == "stdin" && msg.line) { // use a regular expression to parse the line var m = msg.line.match(/^meta:(.*?):(.*)$/); if (m) { console.log("m", m[1], m[2]); if (m[1] == "title") { showtitle(m[2]); } if (m[1] == "authors"){ showauthors(m[2]); } } else { //console.log("bad line", msg.line) } /* // Show all lines var line = document.createElement("div"); line.classList.add("line"); line.innerHTML = msg.line; shell.appendChild(line); // scroll to bottom shell.scrollTop = shell.scrollHeight; */ } else if (msg.src == "connect") { connections.innerHTML = msg.connections; } } }; sock.onclose = function (event) { // console.log("socket closed"); connections.innerHTML = "?"; document.body.classList.remove("connected"); sock = null; window.setTimeout(connect, 2500); } } connect();