var _ws; var adr; var clog = {}; var pingerid; var ios = false; if (typeof clog_debug == 'undefined') { clog_debug = false; } const ws = { // replace 'ws.send()' send: function(message) { if (ios) { _ws.send(message); } else { // hack, see QML 'onTitleChanged()' document.title = message; document.title = "-"; // non empty } } }; function Ping_ws() { if (_ws.readyState == 1) { _ws.send ('0'); } } function Shutdown_ws(event) { if (_ws != null) { _ws.onerror = null; _ws.onclose = null; _ws.close (); _ws = null; } clearInterval (pingerid); if (clog['html_on_close'] != '') { $(document.body).html(clog['html_on_close']); } } function Setup_ws() { _ws.onmessage = function (event) { try { if (clog_debug == true) { console.log ('eval data = ' + event.data); } eval (event.data); } catch (e) { console.error (e.message); } } _ws.onerror = function (event) { console.log ('onerror: reconnect'); _ws = null; _ws = new WebSocket (adr + '?r=' + clog['connection_id']); _ws.onopen = function (event) { console.log ('onerror: reconnect successful'); Setup_ws(); } _ws.onclose = function (event) { console.log ('onerror: reconnect failure'); Shutdown_ws(event); } } _ws.onclose = function (event) { console.log ('onclose: reconnect'); _ws = null; _ws = new WebSocket (adr + '?r=' + clog['connection_id']); _ws.onopen = function (event) { console.log ('onclose: reconnect successful'); Setup_ws(); } _ws.onclose = function (event) { console.log ('onclose: reconnect failure'); Shutdown_ws(event); } } } $( document ).ready(function() { var s = document.location.search; var tokens; var r = /[?&]?([^=]+)=([^&]*)/g; clog['body']=document.body; clog['head']=document.head; clog['documentElement']=document.documentElement; clog['window']=window; clog['navigator']=navigator; clog['document']=window.document; clog['location']=window.location; /* if (location.protocol == 'https:') { adr = 'wss://' + location.hostname; } else { adr = 'ws://' + location.hostname; } if (location.port != '') { adr = adr + ':' + location.port; } adr = adr + '/clog'; */ if (ios) { adr = 'ws://127.0.0.1:8080'; try { console.log ('connecting to ' + adr); _ws = new WebSocket (adr); } catch (e) { console.log ('trying again, connecting to ' + adr); _ws = new WebSocket (adr); } if (_ws != null) { _ws.onopen = function (event) { console.log ('connection successful'); Setup_ws(); } pingerid = setInterval (function () {Ping_ws ();}, 10000); } else { document.writeln ('If you are seeing this your browser or your connection to the internet is blocking web_wss.'); } } });