使用纯Java实现一个WebSSH项目的示例代码

2020-03-13 18:02:03王冬梅

<!doctype html>
<html>
<head>
 <title>WebSSH</title>
 <link rel="stylesheet" href="../css/xterm.css" rel="external nofollow" />
</head>
<body>
<div id="terminal" style="width: 100%;height: 100%"></div>

<script src="../lib/jquery-3.4.1/jquery-3.4.1.min.js"></script>
<script src="../js/xterm.js" charset="utf-8"></script>
<script src="../js/webssh.js" charset="utf-8"></script>
<script src="../js/base64.js" charset="utf-8"></script>
</body>
</html>

连接WebSocket并完成数据的发送、接收、回写

openTerminal( {
 //这里的内容可以写死,但是要整合到项目中时,需要通过参数的方式传入,可以动态连接某个终端。
 operate:'connect',
 host: 'ip地址',
 port: '端口号',
 username: '用户名',
 password: '密码'
 });
 function openTerminal(options){
 var client = new WSSHClient();
 var term = new Terminal({
  cols: 97,
  rows: 37,
  cursorBlink: true, // 光标闪烁
  cursorStyle: "block", // 光标样式 null | 'block' | 'underline' | 'bar'
  scrollback: 800, //回滚
  tabStopWidth: 8, //制表宽度
  screenKeys: true
 });

 term.on('data', function (data) {
  //键盘输入时的回调函数
  client.sendClientData(data);
 });
 term.open(document.getElementById('terminal'));
 //在页面上显示连接中...
 term.write('Connecting...');
 //执行连接操作
 client.connect({
  onError: function (error) {
  //连接失败回调
  term.write('Error: ' + error + 'rn');
  },
  onConnect: function () {
  //连接成功回调
  client.sendInitData(options);
  },
  onClose: function () {
  //连接关闭回调
  term.write("rconnection closed");
  },
  onData: function (data) {
  //收到数据时回调
  term.write(data);
  }
 });
 }

效果展示

连接

连接成功

命令操作

ls命令:

vim编辑器:

top命令:

结语

这样我们就完成了一个webssh项目的实现,没有依赖其它任何的组件,后端完全使用Java实现,由于用了SpringBoot,非常容易部署。

但是,我们还可以对这个项目进行扩展,比如新增上传或下载文件,就像Xftp一样,可以很方便地拖拽式上传下载文件。

这个项目之后我会持续更新,上述功能也会慢慢实现,Github: https://github.com/NoCortY/WebSSH

到此这篇关于使用纯Java实现一个WebSSH项目的文章就介绍到这了,更多相关Java实现WebSSH项目内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!