最近因爲項目需求,項目中須要實現一個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