mirror of
https://github.com/jupyter/notebook.git
synced 2025-02-17 12:39:54 +08:00
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
define ([], function() {
|
|
function make_terminal(element, size, ws_url) {
|
|
var ws = new WebSocket(ws_url);
|
|
var term = new Terminal({
|
|
cols: size.cols,
|
|
rows: size.rows,
|
|
screenKeys: true,
|
|
useStyle: false
|
|
});
|
|
ws.onopen = function(event) {
|
|
ws.send(JSON.stringify(["set_size", size.rows, size.cols,
|
|
window.innerHeight, window.innerWidth]));
|
|
term.on('data', function(data) {
|
|
ws.send(JSON.stringify(['stdin', data]));
|
|
});
|
|
|
|
term.on('title', function(title) {
|
|
document.title = title;
|
|
});
|
|
|
|
term.open(element);
|
|
|
|
ws.onmessage = function(event) {
|
|
json_msg = JSON.parse(event.data);
|
|
switch(json_msg[0]) {
|
|
case "stdout":
|
|
term.write(json_msg[1]);
|
|
break;
|
|
case "disconnect":
|
|
term.write("\r\n\r\n[CLOSED]\r\n");
|
|
break;
|
|
}
|
|
};
|
|
};
|
|
return {socket: ws, term: term};
|
|
}
|
|
|
|
return {make_terminal: make_terminal};
|
|
});
|