xterm / src /client.js
YoBatM's picture
Create src/client.js
56e2bf6 verified
raw
history blame
993 Bytes
const socketProtocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
const socketUrl = `${socketProtocol}//${window.location.host}`;
const socket = new WebSocket(socketUrl);
socket.onmessage = (event) => {
term.write(event.data);
}
var term = new window.Terminal({
cursorBlink: true
});
term.open(document.getElementById('terminal'));
function init() {
if (term._initialized) {
return;
}
term._initialized = true;
term.prompt = () => {
runCommand('\n');
};
setTimeout(() => {
term.prompt();
}, 300);
term.onKey(keyObj => {
runCommand(keyObj.key);
});
term.attachCustomKeyEventHandler((e) => {
if ((e.ctrlKey || e.metaKey) && e.key === 'v') {
navigator.clipboard.readText().then(text => {
runCommand(text);
});
return false;
}
return true;
});
}
function runCommand(command) {
socket.send(command);
}
init();