最近Linux課程大作業要求我們實現一個類似於實驗樓中那種左邊是word右邊是一個webshell的html
在網上找了一些webssh插件發現都不是Java實現,自己又沒有在Mac上安裝太多語言的編譯器僅僅有Java,python,c這幾個而且除了Java其他的自己也不太熟練,所以打算自己實現一下webshell的功能。
在網上找了一些資料最好決定前端頁面使用一個叫做xtrem.js的插件
後端還是使用我最瞭解的netty做http靜態服務器和websocket連接
大致的思路如下:
- 首先從前臺發送一個httprequest
- 在netty拿到這個request判斷是否是一個socket升級協議請求
- 如果不是就返回請求的資源
- 如果是一個升級協議就建立websocket連接並獲取前端傳過來的命令數據
- 獲取到了數據後我們通過一個叫做jsch的Java包來實現netty與遠程telnet連接並將獲取到的命令分類發送給遠端
- 新建一個線程監視着telnet連接的inputstream,如果有數據第一時間返回給前端並在前端展示頁面
大體上的思路就是這樣
這個工具目前對於我的大作業來說基本功能是可以實現了,不過等我這段時間考試和大作業都完事了還打算繼續完善一下這個tool,比如加入一些拖拽發送文件等功能。