gotty/resources/gotty.js
2015-08-17 07:02:51 +09:00

52 lines
1.4 KiB
JavaScript

(function() {
var httpsEnabled = window.location.protocol == "https:";
var url = (httpsEnabled ? 'wss://' : 'ws://') + window.location.host + window.location.pathname + 'ws';
var protocols = ["gotty"];
var ws = new WebSocket(url, protocols);
var term;
ws.onopen = function(event) {
hterm.defaultStorage = new lib.Storage.Local()
term = new hterm.Terminal();
term.onTerminalReady = function() {
var io = term.io.push();
io.onVTKeystroke = function(str) {
ws.send("0" + str);
};
io.sendString = io.onVTKeystroke;
io.onTerminalResize = function(columns, rows) {
ws.send(
"1" + JSON.stringify(
{
name: "resize_terminal",
arguments: {
columns: columns,
rows: rows,
},
}
)
)
};
term.installKeyboard();
};
term.decorate(document.body);
};
ws.onmessage = function(event) {
term.io.writeUTF16(event.data);
}
ws.onclose = function(event) {
term.io.print("Connection closed.");
term.uninstallKeyboard();
}
})()