|
|
|
@ -1609,22 +1609,27 @@ function tr(key) { return _tr[key] || '?'+key+'?'; } |
|
|
|
|
w.startScanning = startScanning; |
|
|
|
|
})(window.WiFi = {}); |
|
|
|
|
/** Handle connections */ |
|
|
|
|
var Conn = (function() { |
|
|
|
|
var Conn = (function () { |
|
|
|
|
var ws; |
|
|
|
|
var heartbeatTout; |
|
|
|
|
var pingIv; |
|
|
|
|
var xoff = false; |
|
|
|
|
var autoXoffTout; |
|
|
|
|
var reconTout; |
|
|
|
|
|
|
|
|
|
var pageShown = false; |
|
|
|
|
|
|
|
|
|
function onOpen(evt) { |
|
|
|
|
console.log("CONNECTED"); |
|
|
|
|
doSend("i"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function onClose(evt) { |
|
|
|
|
console.warn("SOCKET CLOSED, code "+evt.code+". Reconnecting..."); |
|
|
|
|
setTimeout(function() { |
|
|
|
|
console.warn("SOCKET CLOSED, code " + evt.code + ". Reconnecting..."); |
|
|
|
|
clearTimeout(reconTout); |
|
|
|
|
reconTout = setTimeout(function () { |
|
|
|
|
init(); |
|
|
|
|
}, 200); |
|
|
|
|
}, 2000); |
|
|
|
|
// this happens when the buffer gets fucked up via invalid unicode.
|
|
|
|
|
// we basically use polling instead of socket then
|
|
|
|
|
} |
|
|
|
@ -1637,12 +1642,18 @@ var Conn = (function() { |
|
|
|
|
case 'T': |
|
|
|
|
case 'S': |
|
|
|
|
Screen.load(evt.data); |
|
|
|
|
if(!pageShown) { |
|
|
|
|
showPage(); |
|
|
|
|
pageShown = true; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case '-': |
|
|
|
|
//console.log('xoff');
|
|
|
|
|
xoff = true; |
|
|
|
|
autoXoffTout = setTimeout(function(){xoff=false;}, 250); |
|
|
|
|
autoXoffTout = setTimeout(function () { |
|
|
|
|
xoff = false; |
|
|
|
|
}, 250); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case '+': |
|
|
|
@ -1652,7 +1663,7 @@ var Conn = (function() { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
heartbeat(); |
|
|
|
|
} catch(e) { |
|
|
|
|
} catch (e) { |
|
|
|
|
console.error(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1691,24 +1702,16 @@ var Conn = (function() { |
|
|
|
|
showPage(); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
heartbeat(); |
|
|
|
|
|
|
|
|
|
ws = new WebSocket("ws://"+_root+"/term/update.ws"); |
|
|
|
|
clearTimeout(reconTout); |
|
|
|
|
clearTimeout(heartbeatTout); |
|
|
|
|
|
|
|
|
|
ws = new WebSocket("ws://" + _root + "/term/update.ws"); |
|
|
|
|
ws.onopen = onOpen; |
|
|
|
|
ws.onclose = onClose; |
|
|
|
|
ws.onmessage = onMessage; |
|
|
|
|
|
|
|
|
|
console.log("Opening socket."); |
|
|
|
|
|
|
|
|
|
// Ask for initial data
|
|
|
|
|
$.get('http://'+_root+'/term/init', function(resp, status) { |
|
|
|
|
if (status !== 200) location.reload(true); |
|
|
|
|
console.log("Data received!"); |
|
|
|
|
Screen.load(resp); |
|
|
|
|
heartbeat(); |
|
|
|
|
|
|
|
|
|
showPage(); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function heartbeat() { |
|
|
|
@ -1718,9 +1721,9 @@ var Conn = (function() { |
|
|
|
|
|
|
|
|
|
function heartbeatFail() { |
|
|
|
|
console.error("Heartbeat lost, probing server..."); |
|
|
|
|
pingIv = setInterval(function() { |
|
|
|
|
pingIv = setInterval(function () { |
|
|
|
|
console.log("> ping"); |
|
|
|
|
$.get('http://'+_root+'/system/ping', function(resp, status) { |
|
|
|
|
$.get('http://' + _root + '/system/ping', function (resp, status) { |
|
|
|
|
if (status == 200) { |
|
|
|
|
clearInterval(pingIv); |
|
|
|
|
console.info("Server ready, reloading page..."); |
|
|
|
@ -1729,7 +1732,7 @@ var Conn = (function() { |
|
|
|
|
}, { |
|
|
|
|
timeout: 100, |
|
|
|
|
}); |
|
|
|
|
}, 500); |
|
|
|
|
}, 1000); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|