|
|
@ -1615,16 +1615,21 @@ var Conn = (function() { |
|
|
|
var pingIv; |
|
|
|
var pingIv; |
|
|
|
var xoff = false; |
|
|
|
var xoff = false; |
|
|
|
var autoXoffTout; |
|
|
|
var autoXoffTout; |
|
|
|
|
|
|
|
var reconTout; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var pageShown = false; |
|
|
|
|
|
|
|
|
|
|
|
function onOpen(evt) { |
|
|
|
function onOpen(evt) { |
|
|
|
console.log("CONNECTED"); |
|
|
|
console.log("CONNECTED"); |
|
|
|
|
|
|
|
doSend("i"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function onClose(evt) { |
|
|
|
function onClose(evt) { |
|
|
|
console.warn("SOCKET CLOSED, code " + evt.code + ". Reconnecting..."); |
|
|
|
console.warn("SOCKET CLOSED, code " + evt.code + ". Reconnecting..."); |
|
|
|
setTimeout(function() { |
|
|
|
clearTimeout(reconTout); |
|
|
|
|
|
|
|
reconTout = setTimeout(function () { |
|
|
|
init(); |
|
|
|
init(); |
|
|
|
}, 200); |
|
|
|
}, 2000); |
|
|
|
// this happens when the buffer gets fucked up via invalid unicode.
|
|
|
|
// this happens when the buffer gets fucked up via invalid unicode.
|
|
|
|
// we basically use polling instead of socket then
|
|
|
|
// we basically use polling instead of socket then
|
|
|
|
} |
|
|
|
} |
|
|
@ -1637,12 +1642,18 @@ var Conn = (function() { |
|
|
|
case 'T': |
|
|
|
case 'T': |
|
|
|
case 'S': |
|
|
|
case 'S': |
|
|
|
Screen.load(evt.data); |
|
|
|
Screen.load(evt.data); |
|
|
|
|
|
|
|
if(!pageShown) { |
|
|
|
|
|
|
|
showPage(); |
|
|
|
|
|
|
|
pageShown = true; |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case '-': |
|
|
|
case '-': |
|
|
|
//console.log('xoff');
|
|
|
|
//console.log('xoff');
|
|
|
|
xoff = true; |
|
|
|
xoff = true; |
|
|
|
autoXoffTout = setTimeout(function(){xoff=false;}, 250); |
|
|
|
autoXoffTout = setTimeout(function () { |
|
|
|
|
|
|
|
xoff = false; |
|
|
|
|
|
|
|
}, 250); |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case '+': |
|
|
|
case '+': |
|
|
@ -1691,24 +1702,16 @@ var Conn = (function() { |
|
|
|
showPage(); |
|
|
|
showPage(); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
heartbeat(); |
|
|
|
|
|
|
|
|
|
|
|
clearTimeout(reconTout); |
|
|
|
|
|
|
|
clearTimeout(heartbeatTout); |
|
|
|
|
|
|
|
|
|
|
|
ws = new WebSocket("ws://" + _root + "/term/update.ws"); |
|
|
|
ws = new WebSocket("ws://" + _root + "/term/update.ws"); |
|
|
|
ws.onopen = onOpen; |
|
|
|
ws.onopen = onOpen; |
|
|
|
ws.onclose = onClose; |
|
|
|
ws.onclose = onClose; |
|
|
|
ws.onmessage = onMessage; |
|
|
|
ws.onmessage = onMessage; |
|
|
|
|
|
|
|
|
|
|
|
console.log("Opening socket."); |
|
|
|
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(); |
|
|
|
heartbeat(); |
|
|
|
|
|
|
|
|
|
|
|
showPage(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function heartbeat() { |
|
|
|
function heartbeat() { |
|
|
@ -1729,7 +1732,7 @@ var Conn = (function() { |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
timeout: 100, |
|
|
|
timeout: 100, |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, 500); |
|
|
|
}, 1000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
return { |
|
|
|