国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2023 ~【VUE+Xterm+Websocket】模擬SSH連接效果

這篇具有很好參考價(jià)值的文章主要介紹了2023 ~【VUE+Xterm+Websocket】模擬SSH連接效果。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、安裝包 xterm、 xterm-addon-attach、 xterm-addon-fit

cnpm install xterm --save
cnpm install xterm-addon-attach --save
cnpm install xterm-addon-fit --save

安裝最新版本即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-733468.html

"xterm": "^5.2.1",
"xterm-addon-attach": "^0.8.0",
"xterm-addon-fit": "^0.7.0"

2、在頁(yè)面中使用

<div id="terBox" ref="terminal" style="padding-top: 5px; height: calc(100vh - 294px)" />
<script>
import "xterm/css/xterm.css";
import { Terminal } from "xterm";
import { FitAddon } from "xterm-addon-fit"; // 全屏
import { AttachAddon } from "xterm-addon-attach";

export default {
  	name: "Ssh",
	data() {
	    return {
	      term: null,
	      socket: "",
	    };
	},
	mounted() {
	  this.initTerm();
	  window.addEventListener("resize", this.resizeScreen);
	},
	methods: {
	    initTerm() {
	      this.$nextTick(() => {
	        var rowHeight = document.getElementById("terBox").clientHeight; // 高
	        // 1.xterm終端初始化
	        let term = new Terminal({
	          rendererType: "canvas", //渲染類(lèi)型
	          rows: Math.trunc(rowHeight / 17 - 1)  || 36, //行數(shù)
	          // cols: 10, // 不指定行數(shù),自動(dòng)回車(chē)后光標(biāo)從下一行開(kāi)始
	          convertEol: true, //啟用時(shí),光標(biāo)將設(shè)置為下一行的開(kāi)頭
	          // scrollback: 50, //終端中的回滾量
	          disableStdin: false, //是否應(yīng)禁用輸入
	          windowsMode: true, // 根據(jù)窗口換行
	          cursorStyle: "underline", //光標(biāo)樣式
	          cursorBlink: true, //光標(biāo)閃爍
	          theme: {
	            foreground: "#ECECEC", //字體
	            background: "#000000", //背景色
	            cursor: "help", //設(shè)置光標(biāo)
	            lineHeight: 20,
	          },
	        });
	
	        // 2.webSocket初始化 (不需要另外的方法)
	        const socketUri = "ws://" + process.env.VUE_APP_SOCKET + ":9207/sshSocket";
	        this.socket = new WebSocket(socketUri); // 發(fā)起連接
	
	        // 3.websocket集成的插件
	        const attachAddon = new AttachAddon(this.socket);
	        const fitAddon = new FitAddon(); // 全屏插件
	        term.loadAddon(attachAddon);
	        term.loadAddon(fitAddon);
	        term.open(this.$refs.terminal);
	        fitAddon.fit();
	        term.focus();
	        this.term = term;
	        // 發(fā)送 term 數(shù)據(jù)
	        this.term.onData((data) => {
	          this.sendSSH({
	            operate: "command",
	            host: this.loginForm.host,
	            port: this.loginForm.port || 22,
	            command: data,
	            rows: this.term.rows,
	            cols: this.term.cols,
	          }); // 初次連接SSH
	        });
	      });
	    },
	    /** 當(dāng)屏幕變化時(shí)修改 */
	    resizeScreen() {
	      var colWidth = document.getElementById("terBox").clientWidth; // 寬
	      var rowHeight = document.getElementById("terBox").clientHeight; // 高
	      // 注意修改 用 term.resize(cols, rows),不能用 term.cols = cols(只能取值)
	      this.term.resize(Math.trunc(colWidth / 9), Math.trunc(rowHeight / 17 - 1)) // 修改 cols 和 rows
	    },
	}
}
</script>

到了這里,關(guān)于2023 ~【VUE+Xterm+Websocket】模擬SSH連接效果的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue項(xiàng)目中使用websocket連接后立馬斷開(kāi)(websocket連接后瞬間斷開(kāi))

    vue項(xiàng)目中使用websocket連接后立馬斷開(kāi)(websocket連接后瞬間斷開(kāi))

    問(wèn)題原因(連接后斷連的原因):前端給后端傳遞Authourization(token驗(yàn)證)時(shí),后端需要接收處理并設(shè)置響應(yīng)標(biāo)頭,不然就容易出現(xiàn)上敘錯(cuò)誤; 解決方法: 1、傳遞參數(shù)和驗(yàn)證權(quán)限; 2、后端處理后前端收到的響應(yīng)標(biāo)頭; ?然后,連接后斷連的問(wèn)題就解決啦!感覺(jué)有用,就一鍵

    2024年02月11日
    瀏覽(25)
  • vue-頁(yè)面使用websocket建立連接用于測(cè)試

    vue-頁(yè)面使用websocket建立連接用于測(cè)試

    前言 websocket雙向通訊在項(xiàng)目中經(jīng)常使用,但一般都是封裝成第三方包,登錄,退出建立連接。 這樣使用是合理,但不便于測(cè)試,其實(shí)在.vue頁(yè)面通過(guò)new方式可以直接使用websocket。 在頁(yè)面實(shí)例加載完成之后連接websocket,在組件銷(xiāo)毀時(shí)候斷開(kāi)websocket連接。 注意具體情況要跟后端

    2024年02月15日
    瀏覽(21)
  • vue 使用stompjs websocket連接rabbitmq

    1. 首先確保rabbitmq服務(wù)已開(kāi)啟web-stomp ? ? ? ? 1.1 登錄rabbitmq web控制臺(tái) ? ? ? ? 1.2?在overview目錄下 下拉找到Ports and contexts 看列表有沒(méi)有http/web-stomp ? ? ? ? 1.3?如果沒(méi)有需要開(kāi)啟 window/centos 進(jìn)入rabbitmq安裝目錄的bin目錄下執(zhí)行rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_stomp rabbi

    2024年02月14日
    瀏覽(14)
  • 在vue3項(xiàng)目中進(jìn)行websocket的連接

    首先是安裝 我這邊是封裝了一個(gè)websocket的類(lèi) 再進(jìn)行使用

    2024年04月16日
    瀏覽(14)
  • 使用Vue.js實(shí)現(xiàn)文字跑馬燈效果

    使用Vue.js實(shí)現(xiàn)文字跑馬燈效果

    實(shí)現(xiàn)文字跑馬燈效果,首先用到 substring()截取 和 setInterval計(jì)時(shí)器 clearInterval()清除計(jì)時(shí)器 效果如下: 實(shí)現(xiàn)代碼如下: 以上是實(shí)現(xiàn)文字跑馬燈效果,如有不足的地方,歡迎在評(píng)論區(qū)留言。

    2023年04月19日
    瀏覽(94)
  • 運(yùn)維相關(guān)(一) - Vue項(xiàng)目配置WebSocket連接{ws、wss 連接方式}

    運(yùn)維相關(guān)(一) - Vue項(xiàng)目配置WebSocket連接{ws、wss 連接方式}

    項(xiàng)目使用的是ruoyi的前后端分離框架 項(xiàng)目需要使用到 websocket , 在本地使用 ws 連接方式是沒(méi)問(wèn)題 , 但是服務(wù)器上邊使用的是nginx + ssl 證書(shū) https域名訪問(wèn)的方式部署的 使用普通的 ws 連接是不可以成功的 需要使用 wss的方式 2.1 前端 vue.config.js 的代碼 這里target: 里邊指向的都是后

    2024年02月01日
    瀏覽(27)
  • vue 項(xiàng)目使用three.js 實(shí)現(xiàn)3D看房效果

    vue 項(xiàng)目使用three.js 實(shí)現(xiàn)3D看房效果

    0.前言 該教程能幫助直接寫(xiě)出vue項(xiàng)目的3D看房效果!?。?先上效果圖 1.安裝依賴(lài) 2.vue代碼 這里文件名為three.vue 代碼非原創(chuàng),出處 vue3+threejs實(shí)現(xiàn)全景看房 (異步加載 BOLLROOM 部件為對(duì)原代碼的修改) 注意這里的hdr 文件必須要放在assets文件夾中,且要通過(guò)import模塊的形式導(dǎo)入!

    2024年02月13日
    瀏覽(94)
  • Vue.js WebSocket 整合指南:實(shí)時(shí)通信的完美解決方案

    WebSocket是一種在Web應(yīng)用程序中實(shí)現(xiàn)雙向通信的通信協(xié)議,它允許客戶端和服務(wù)器之間建立持久的、低延遲的連接,以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸。相比傳統(tǒng)的HTTP請(qǐng)求,WebSocket更適合需要實(shí)時(shí)性和交互性的應(yīng)用程序。 WebSocket解決了傳統(tǒng)HTTP請(qǐng)求的一些限制,例如: 實(shí)時(shí)性: 傳統(tǒng)HTTP請(qǐng)求需

    2024年02月04日
    瀏覽(23)
  • vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放

    vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放

    需求:vue+springboot的項(xiàng)目,需要在頁(yè)面展示出??档挠脖P(pán)錄像機(jī)連接的攝像頭的實(shí)時(shí)監(jiān)控畫(huà)面以及回放功能. 之前項(xiàng)目里是純前端實(shí)現(xiàn)視頻監(jiān)控和回放功能.但是有局限性.就是ip地址必須固定.新的需求里設(shè)備ip不固定.所以必須換一種思路. 通過(guò)設(shè)備的主動(dòng)注冊(cè),讓設(shè)備去主動(dòng)連接服

    2024年02月02日
    瀏覽(26)
  • Vue.js2+Cesium1.103.0 十一、Three.js 炸裂效果

    Vue.js2+Cesium1.103.0 十一、Three.js 炸裂效果

    Demo ThreeModelBoom.vue index.vue

    2024年02月11日
    瀏覽(12)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包