Close terminal if there is no clients (#60)

* Close terminal if there is no clients connecting

* Only enable

* Join the terminal only if it is managed by Dockge

* Done
This commit is contained in:
Louis Lam
2023-11-25 02:04:16 +08:00
committed by GitHub
parent 45ab36db98
commit 766e751522
6 changed files with 81 additions and 9 deletions

View File

@ -140,9 +140,26 @@ export class TerminalSocketHandler extends SocketHandler {
}
});
// Close Terminal
socket.on("terminalClose", async (terminalName : unknown, callback : unknown) => {
// Leave Combined Terminal
socket.on("leaveCombinedTerminal", async (stackName : unknown, callback) => {
try {
checkLogin(socket);
log.debug("leaveCombinedTerminal", "Stack name: " + stackName);
if (typeof(stackName) !== "string") {
throw new ValidationError("Stack name must be a string.");
}
const stack = Stack.getStack(server, stackName);
await stack.leaveCombinedTerminal(socket);
callback({
ok: true,
});
} catch (e) {
callbackError(e, callback);
}
});
// TODO: Resize Terminal