最近因为项目需求,项目中须要实现一个WebSSH链接终端的功能,因为本身第一次作这类型功能,因此首先上了GitHub找了找有没有现成的轮子能够拿来直接用,当时看到了不少这方面的项目,例如:GateOne、webssh、shellinabox等,这些项目均可以很好地实现webssh的功能,可是最终并无采用,缘由是在于这些底层大都是python写的,须要依赖不少文件,本身用的时候可使用这种方案,快捷省事,可是作到项目中供用户使用时,总不能要求用户作到服务器中必须包含这些底层依赖,这显然不太合理,因此我决定本身动手写一个WebSSH的功能,而且做为一个独立的项目开源出来。前端
因为webssh须要实时数据交互,因此会选用长链接的WebSocket,为了开发的方便,框架选用SpringBoot,另外还本身了解了Java用户链接ssh的jsch和实现前端shell页面的xterm.js.python
因此,最终的技术选型就是 SpringBoot+Websocket+jsch+xterm.js。git
刚才咱们实现了websocket的配置,都是一些死代码,实现了接口再根据自身需求便可实现,如今咱们将进行后端主要业务逻辑的实现,在实现这个逻辑以前,咱们先来想一想,WebSSH,咱们主要想要呈现一个什么效果。github
我这里作了一个总结:web
ls命令vim编辑器
top命令
shell
这样咱们就完成了一个webssh项目的实现,没有依赖其它任何的组件,后端彻底使用Java实现,因为用了SpringBoot,很是容易部署。vim
可是,咱们还能够对这个项目进行扩展,好比新增上传或下载文件,就像Xftp同样,能够很方便地拖拽式上传下载文件。后端
这个项目以后我会持续更新,上述功能也会慢慢实现,服务器
来源:Github:https://github.com/NoCortY/We...websocket