|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
|
const term = new Terminal({
|
|
|
cursorBlink: true,
|
|
|
theme: {
|
|
|
background: '#000000',
|
|
|
},
|
|
|
});
|
|
|
const fitAddon = new FitAddon.FitAddon();
|
|
|
term.loadAddon(fitAddon);
|
|
|
term.open(document.getElementById('terminal'));
|
|
|
term.write('Connecting to server...\r\n');
|
|
|
|
|
|
|
|
|
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
|
const ws = new WebSocket(`${protocol}//${window.location.host}/`);
|
|
|
|
|
|
ws.onopen = () => {
|
|
|
console.log('Connected to WebSocket server');
|
|
|
term.write('Connected! Type commands below.\r\n');
|
|
|
fitAddon.fit();
|
|
|
};
|
|
|
|
|
|
ws.onmessage = (event) => {
|
|
|
term.write(event.data);
|
|
|
};
|
|
|
|
|
|
term.onData((data) => {
|
|
|
ws.send(data);
|
|
|
});
|
|
|
|
|
|
ws.onclose = () => {
|
|
|
console.log('WebSocket connection closed');
|
|
|
term.write('\r\nConnection closed.\r\n');
|
|
|
};
|
|
|
|
|
|
ws.onerror = (error) => {
|
|
|
console.error('WebSocket error:', error);
|
|
|
term.write('\r\nWebSocket error occurred.\r\n');
|
|
|
};
|
|
|
|
|
|
|
|
|
window.addEventListener('resize', () => {
|
|
|
fitAddon.fit();
|
|
|
});
|
|
|
|
|
|
|
|
|
fitAddon.fit();
|
|
|
}); |