35 lines
998 B
JavaScript
35 lines
998 B
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
const form = document.getElementById("console-form");
|
|
const output = document.getElementById("console");
|
|
const input = document.getElementById("console-input");
|
|
|
|
if (!form || !output || !input) {
|
|
return;
|
|
}
|
|
|
|
const protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
|
|
const socket = new WebSocket(`${protocol}//${window.location.host}${form.dataset.ws}`);
|
|
|
|
socket.addEventListener("message", (event) => {
|
|
output.textContent += event.data;
|
|
output.scrollTop = output.scrollHeight;
|
|
});
|
|
|
|
socket.addEventListener("open", () => {
|
|
output.textContent += "Connected to remote shell.\n";
|
|
});
|
|
|
|
socket.addEventListener("close", () => {
|
|
output.textContent += "\nSession closed.\n";
|
|
});
|
|
|
|
form.addEventListener("submit", (event) => {
|
|
event.preventDefault();
|
|
if (socket.readyState !== WebSocket.OPEN) {
|
|
return;
|
|
}
|
|
socket.send(`${input.value}\n`);
|
|
input.value = "";
|
|
});
|
|
});
|