Connect banner and click to reconnect

This commit is contained in:
Wildan M 2024-10-31 02:35:06 +07:00
parent eb1d772c27
commit 317a7a5cf7
3 changed files with 16 additions and 6 deletions

File diff suppressed because one or more lines are too long

View file

@ -267,10 +267,13 @@ socket.on('disconnect', (err: any) => {
status.innerHTML = `WEBSOCKET SERVER DISCONNECTED: ${err}`; status.innerHTML = `WEBSOCKET SERVER DISCONNECTED: ${err}`;
} }
var i = setInterval(() => { var i = setInterval(() => {
if (!socket.connected) { if (!socket.connected && document.hasFocus()) {
socket.connect() socket.connect();
} else { } else {
clearInterval(i); clearInterval(i);
if (!socket.connected) {
status.innerHTML + " (click to reconnect)";
}
} }
}, 3000); }, 3000);
countdown.classList.remove('active'); countdown.classList.remove('active');
@ -289,6 +292,12 @@ socket.on('reauth', () => {
} }
}); });
status.addEventListener('click', (ev) => {
if (socket.disconnected) {
socket.connect();
}
})
// safe shutdown // safe shutdown
let hasCountdownStarted = false; let hasCountdownStarted = false;

View file

@ -107,6 +107,10 @@ function setupNewConnection(socket) {
`ssh://${socket.request.session.username}@${socket.request.session.ssh.host}:${socket.request.session.ssh.port}` `ssh://${socket.request.session.username}@${socket.request.session.ssh.host}:${socket.request.session.ssh.port}`
); );
socket.emit('status', 'SSH CONNECTION ESTABLISHED');
socket.emit('statusBackground', 'green');
socket.emit('allowreplay', socket.request.session.ssh.allowreplay);
socket.on('control', (controlData) => { socket.on('control', (controlData) => {
if (!stream) return; if (!stream) return;
if (controlData === 'replayCredentials' && socket.request.session.ssh.allowreplay) { if (controlData === 'replayCredentials' && socket.request.session.ssh.allowreplay) {
@ -145,9 +149,6 @@ function setupNewConnection(socket) {
`LOGIN user=${socket.request.session.username} from=${socket.handshake.address} host=${socket.request.session.ssh.host}:${socket.request.session.ssh.port}` `LOGIN user=${socket.request.session.username} from=${socket.handshake.address} host=${socket.request.session.ssh.host}:${socket.request.session.ssh.port}`
); );
login = true; login = true;
socket.emit('status', 'SSH CONNECTION ESTABLISHED');
socket.emit('statusBackground', 'green');
socket.emit('allowreplay', socket.request.session.ssh.allowreplay);
const { term, cols, rows } = socket.request.session.ssh; const { term, cols, rows } = socket.request.session.ssh;
conn.shell({ term, cols, rows }, (err, s) => { conn.shell({ term, cols, rows }, (err, s) => {
if (err) { if (err) {