<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          這款國產(chǎn)SSH客戶端很牛逼

          共 1291字,需瀏覽 3分鐘

           ·

          2021-01-17 03:00


          前言

          最近由于項(xiàng)目需求,項(xiàng)目中需要實(shí)現(xiàn)一個(gè)WebSSH連接終端的功能,由于自己第一次做這類型功能,所以首先上了GitHub找了找有沒有現(xiàn)成的輪子可以拿來直接用,當(dāng)時(shí)看到了很多這方面的項(xiàng)目,例如:GateOne、webssh、shellinabox等,這些項(xiàng)目都可以很好地實(shí)現(xiàn)webssh的功能,但是最終并沒有采用,原因是在于這些底層大都是python寫的,需要依賴很多文件,自己用的時(shí)候可以使用這種方案,快捷省事,但是做到項(xiàng)目中供用戶使用時(shí),總不能要求用戶做到服務(wù)器中必須包含這些底層依賴,這顯然不太合理,所以我決定自己動(dòng)手寫一個(gè)WebSSH的功能,并且作為一個(gè)獨(dú)立的項(xiàng)目開源出來。

          技術(shù)選型

          由于webssh需要實(shí)時(shí)數(shù)據(jù)交互,所以會選用長連接的WebSocket,為了開發(fā)的方便,框架選用SpringBoot,另外還自己了解了Java用戶連接ssh的jsch和實(shí)現(xiàn)前端shell頁面的xterm.js.

          所以,最終的技術(shù)選型就是 SpringBoot+Websocket+jsch+xterm.js。

          WebSSH的業(yè)務(wù)邏輯實(shí)現(xiàn)(核心)

          剛才我們實(shí)現(xiàn)了websocket的配置,都是一些死代碼,實(shí)現(xiàn)了接口再根據(jù)自身需求即可實(shí)現(xiàn),現(xiàn)在我們將進(jìn)行后端主要業(yè)務(wù)邏輯的實(shí)現(xiàn),在實(shí)現(xiàn)這個(gè)邏輯之前,我們先來想想,WebSSH,我們主要想要呈現(xiàn)一個(gè)什么效果。

          我這里做了一個(gè)總結(jié):

          • 1.首先我們得先連接上終端(初始化連接)
          • 2.其次我們的服務(wù)端需要處理來自前端的消息(接收并處理前端消息)
          • 3.我們需要將終端返回的消息回寫到前端(數(shù)據(jù)回寫前端)
          • 4.關(guān)閉連接

          效果展示

          • 連接
          • 連接成功

          命令操作

          ls命令vim編輯器top命令

          結(jié)語

          這樣我們就完成了一個(gè)webssh項(xiàng)目的實(shí)現(xiàn),沒有依賴其它任何的組件,后端完全使用Java實(shí)現(xiàn),由于用了SpringBoot,非常容易部署。

          但是,我們還可以對這個(gè)項(xiàng)目進(jìn)行擴(kuò)展,比如新增上傳或下載文件,就像Xftp一樣,可以很方便地拖拽式上傳下載文件。

          這個(gè)項(xiàng)目之后我會持續(xù)更新,上述功能也會慢慢實(shí)現(xiàn),Github:https://github.com/NoCortY/WebSSH

          來源:https://blog.csdn.net/NoCortY/article/details/104772431


          推薦閱讀

          分享基于 Spring Cloud +OAuth2 的權(quán)限管理系統(tǒng)

          鏈家程序員刪公司9TB 數(shù)據(jù) 被判7年

          工作10年后,再看String s = new String("xyz") 創(chuàng)建了幾個(gè)對象?

          SpringBoot集成WebSocket,實(shí)現(xiàn)后臺向前端推送信息

          SpringBoot 配置 ELK 環(huán)境

          給代碼寫注釋時(shí)有哪些講究?

          程序員該如何把 Windows 系統(tǒng)打造的跟 Mac 一樣牛逼?

          基于 SpringBoot,來實(shí)現(xiàn)MySQL讀寫分離技術(shù)

          瀏覽 27
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕无码综合 | 精品三级在线观看 | 国产无码电影 | 婷婷亚洲五月色综 | 国产V视频在线观看 |