針對前面兩篇博客的續寫,主體的都寫的差很少了,可是實際真正的功能並無寫。功能按鈕以下:分支顯示,打包,重啓。
html
實時刷新到web的總體思路:vue
當點擊分支顯示時,作的操做是,把服務名發送到後端,而後調用shell執行git相關命令的操做,將全部分支實時顯示到web界面上,而後經過點擊觸發事件將分支名加到vuex中對應的服務名後面的branch字段中,此時public公共組件裏面的watch會實時監聽vuex中的值將分支名稱顯示到以下,當點擊打包按鈕時,會將這個分支名和服務名一併發送到後端,執行相關的shell腳本,執行完相關的shell腳本後將jar包發送到指定的位置,固然在執行這個shell過程當中會實時的將打包日子顯示到web界面上,對於重啓按鈕顯示日誌也是同樣的,可是這裏想用其餘方法實現。接下來會講到。python
用到的技術:git
初版:websocket+paramikoweb
參考博客:https://www.cnblogs.com/xiao987334176/p/10289262.htmlvuex
思路:經過paramiko模塊實現python和shell的交互,並將執行的結果保存到標準輸出中,而後經過和websocket循環的方式顯示到web界面中。shell
第二版:websocket+websocketd編程
websocketd的官網:http://websocketd.com/後端
webcocketd的簡單使用:瀏覽器
websocketd容許用幾乎任何編程語言編寫WebSocket端點。
端點的鏈接與關係:
每當瀏覽器鏈接到該URL時,websocketd服務器將啓動進程的新實例。當瀏覽器斷開鏈接時,進程將中止。
若是有10個瀏覽器鏈接到您的服務器,那麼將有10個獨立的程序實例運行。websocketd負責監聽WebSocket鏈接並啓動/中止程序進程。
是HTML5開始提供的一種瀏覽器與服務器進行全雙工通信的網絡技術,屬於應用層協議。它基於TCP傳輸協議,並複用HTTP的握手通道。有瀏覽器發起創建鏈接以後,服務端也能夠主動向瀏覽器發送數據。
這是我本身測試的結果:
官網還有websocket+websocketd的測試,到時候將websocket的代碼部分寫入到vue中的script中就能夠了。
websocketd官網上有測試,拷貝下來也能夠本身測試,徹底沒有問題的。這裏沒有繼續在代碼裏面實現的緣由是被打擊的太嚴重了,作完以後發現和jenkins持續構架並無什麼區別,jenkins的流程也是在本地打包,打好包以後使用ssh方式將jenkins服務器上的包發送到遠程主機並執行重啓相關的腳本。