@@ -153,14 +142,30 @@
}
}
+ let activeTermWs = null;
+
function openTerminal(ip) {
+ if (activeTermWs) activeTermWs.close();
+
term.clear();
- term.write(`Verbinde mit ${ip}...\r\n`);
- // Hier würde die WebSocket Verbindung für das spezifische Terminal initiiert werden
- const termWs = new WebSocket(`ws://${location.host}/ws/terminal/${ip}`);
- termWs.onmessage = (event) => {
- term.write(event.data.replace(/\n/g, '\r\n'));
+ term.write(`\r\n>>> Verbinde mit ${ip}...\r\n`);
+
+ activeTermWs = new WebSocket(`ws://${location.host}/ws/terminal/${ip}`);
+
+ activeTermWs.onmessage = (event) => {
+ term.write(event.data);
};
+
+ activeTermWs.onclose = () => {
+ term.write('\r\n[Verbindung geschlossen]\r\n');
+ };
+
+ // Tastatureingaben vom Browser an den Server schicken
+ term.onData(data => {
+ if (activeTermWs && activeTermWs.readyState === WebSocket.OPEN) {
+ activeTermWs.send(data);
+ }
+ });
}
// Enter-Taste zum Senden