| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- var head = 0, tail = 0, ring = new Array();
- function get_appropriate_ws_url(extra_url)
- {
- var pcol;
- var u = document.URL;
- /*
- * We open the websocket encrypted if this page came on an
- * https:// url itself, otherwise unencrypted
- */
- if (u.substring(0, 5) === "https") {
- pcol = "wss://";
- u = u.substr(8);
- } else {
- pcol = "ws://";
- if (u.substring(0, 4) === "http")
- u = u.substr(7);
- }
- u = u.split("/");
- /* + "/xxx" bit is for IE10 workaround */
- return pcol + u[0] + "/" + extra_url;
- }
- function new_ws(urlpath, protocol)
- {
- return new WebSocket(urlpath, protocol);
- }
- document.addEventListener("DOMContentLoaded", function() {
- var ws = new_ws(get_appropriate_ws_url(""), "lws-minimal-proxy");
- try {
- ws.onopen = function() {
- document.getElementById("r").disabled = 0;
- };
-
- ws.onmessage =function got_packet(msg) {
- var n, s = "";
-
- ring[head] = msg.data + "\n";
- head = (head + 1) % 20;
- if (tail === head)
- tail = (tail + 1) % 20;
-
- n = tail;
- do {
- s = s + ring[n];
- n = (n + 1) % 20;
- } while (n !== head);
-
- document.getElementById("r").value = s;
- document.getElementById("r").scrollTop =
- document.getElementById("r").scrollHeight;
- };
-
- ws.onclose = function(){
- document.getElementById("r").disabled = 1;
- };
- } catch(exception) {
- alert("<p>Error " + exception);
- }
- }, false);
|