1
0
forked from circlecloud/tera

refactor: rewrite rpc server client

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2019-07-20 13:12:21 +08:00
parent fd1b23a4c3
commit b05a00f87d
18 changed files with 315 additions and 298 deletions

View File

@@ -22,71 +22,7 @@
<body>
<div id="terminal" style="height: 100%;"></div>
<script type="text/javascript">
Terminal.applyAddon(fit);
Terminal.applyAddon(attach);
Terminal.applyAddon(fullscreen);
var term = new Terminal({
cursorBlink: true,
screenKeys: true
});
term.open(document.getElementById('terminal'));
term.toggleFullScreen();
term.fit();
var cmd = ''
term.on('data', (data) => {
if (data =='\r') {
term.writeln(data)
if(cmd.startsWith('/')){
args = cmd.split(' ');
cmd = args[0].substr(1);
switch(cmd){
case "connect":
if(args[1]){
newcon(args[1])
} else {
newcon('/main')
}
break;
case "disconnect":
socket.close();
break;
}
} else {
socket && socket.emit('webmsg', {cmd});
}
cmd = ''
} else {
cmd += data;
term.write(data)
}
});
function newcon(address){
socket = io(address,{
path: '/ws',
transports: ['websocket']
});
socket.on('connect', function(){
term.writeln('connect')
socket.emit('webclient',{})
});
socket.on('message', function(data){
for (const line of JSON.stringify(data, undefined, 4).split('\n')){
term.writeln(line);
}
});
socket.on('disconnect', function(){
term.reset();
term.writeln('disconnect')
});
}
window.onresize = function() {
term.fit();
term.scrollToBottom();
};
</script>
<script src="index.js"></script>
</body>
</html>