Rumah hujung hadapan web Tutorial H5 vue项目中如何映入noVNC远程桌面

vue项目中如何映入noVNC远程桌面

Mar 27, 2018 pm 02:54 PM
jauh

这次给大家带来vue项目中如何映入noVNC远程桌面,vue项目中映入noVNC远程桌面的注意事项有哪些,下面就是实战案例,一起来看一下。

1 、首先,先简单介绍一下概念。

VNCServer 是一个为了满足分布式用户共享服务器资源,而在服务器开启的一项服务,对应的客户端软件有图形化客户端 VNCViewer,而 noVNC 则是 HTML5 VNC 客户端,它采用 HTML 5 WebSocket, Canvas 和 JavaScript 实现。

noVNC 被普遍用在各大云计算、虚拟机控制面板中。noVNC 采用 WebSockets 实现,但是当前大多 VNC 服务器不支持 WebSocket,所以 noVNC 不能直连 VNC 服务器,而是需要开启一个代理来做 WebSockets 和 TCP sockets 之间的转换。这个代理叫做 websockify。

2 、项目中有这样一个需求,系统中有多个功能页,但是功能还包括原有的在物理终端设备上的功能(包括后来在电脑的虚拟终端客户端),这就用到了noVNC。好处是可以将其他功能系统(或称之为页面)嵌入新的项目中,还可以去点击操作上面的功能等,可以暂时解决一些问题。

3 、由于项目框架是vue,所以以下均为前端实现部分

首先是先引入noVNC的库。有两种引入方式,一是,直接下载源码到自己的项目中,此方式一些问题下面进行详细介绍;

git clone git://github.com/novnc/noVNC
Salin selepas log masuk

二是,如果采用了webpack的方式,可以使用npm进行安装依赖,更方便。

npm install @novnc/novnc
Salin selepas log masuk

下面是详细代码部分

HTML

<template> 
 <p class="page-home" ref="canvas"> 
 <canvas id="noVNC_canvas" width="800" height="600"> 
 Canvas not supported. 
 </canvas> 
 </p> 
</template>
Salin selepas log masuk

Script

import WebUtil from '../../noVNC/app/webutil.js' 
 
import Base64 from '../../noVNC/core/base64.js' 
import Websock from '../../noVNC/core/websock.js' 
import '../../noVNC/core/des.js' 
import '../../noVNC/core/input/keysymdef.js' 
import '../../noVNC/core/input/xtscancodes.js' 
import '../../noVNC/core/input/util.js' 
import {Keyboard, Mouse} from '../../noVNC/core/input/devices.js' 
import Display from '../../noVNC/core/display.js' 
import '../../noVNC/core/inflator.js' 
import RFB from '../../noVNC/core/rfb.js' 
import '../../noVNC/core/input/keysym.js'
Salin selepas log masuk

由于采用的是第一种引入方式,所以在资源引入上用了import的方式。需要注意的是在引入某些文件时,项目是基于es6的语法,所以引入外部js的方式略有差异。例如引入webutil.js文件,需要增加export default,然后才能正确使用。在引入时可以稍微修改一下文件即可。文件中有相应的备注描述。

引入资源完成后接下来就是如何去使用了,其实并不复杂。话不多说,上码。

connectVNC () {
 var
  DEFAULT_HOST = '',
  DEFAULT_PORT = '',
  DEFAULT_PASSWORD = "",
  DEFAULT_PATH = "websockify"
 ;
 var cRfb = null;
 var oTarget = document.getElementById("noVNC_canvas");
 let that = this
 if (!this.currentEquipment) {
  return
 }
 let novncPort = this.currentEquipment.novncPort
 getNovncIp().then(function (resData) {
  WebUtil.init_logging(WebUtil.getConfigVar("logging", "warn"));
  var sHost = resData.data.content.ip || DEFAULT_HOST,
  nPort = novncPort || DEFAULT_PORT,
  sPassword = DEFAULT_PASSWORD,
  sPath = DEFAULT_PATH
  ;
  cRfb = new RFB({
  "target": oTarget,<span class="space" style="white-space:pre;display:inline-block;text-indent:2em;line-height:inherit;"> // 目标</span>
  "focusContainer": top.document, // 鼠标焦点定位
  "encrypt": WebUtil.getConfigVar("encrypt", window.location.protocol === "https:"),
  "repeaterID": WebUtil.getConfigVar("repeaterID", ""),
  "true_color": WebUtil.getConfigVar("true_color", true),
  "local_cursor": WebUtil.getConfigVar("cursor", true),
  "shared": WebUtil.getConfigVar("shared", true),
  "view_only": WebUtil.getConfigVar("view_only", false),
  "onFBUComplete": that._onCompleteHandler, // 回调函数
  "onDisconnected": that._disconnected // 断开连接
  });
  // console.log('sHost:' + sHost + '--nPort:' + nPort)
  cRfb.connect(sHost, nPort, sPassword, sPath);
 })
 },
Salin selepas log masuk

首先是在methods生命周期中定义了一个方法,把初始化相关的操作写在里面。然后再mounted生命周期中去调用this.connectVnc()。一定要在这个生命周期内去调用,否则canvas未初始化是不能获取到dom结构的。

简单描述一下就是,实例化一个对象,包括一些用到的方法或者属性,然后调用connect方法,并传入host,port,password,path参数即可建立连接。

其中有两个方法,一个是链接成功后的回调_.onCompleteHandler,一个是断开连接的回调_disconnected

// 远程桌面连接成功后的回调函数 
 _onCompleteHandler (rfb, fbu) { 
 // 清除 onComplete 的回调。 
 rfb.set_onFBUComplete(function () { 
 }); 
 
 var oDisplay = rfb.get_display(), 
  nWidth = oDisplay.get_width(), 
  nHeight = oDisplay.get_height(), 
 
  oView = oDisplay.get_target(), 
  nViewWidth = oView.clientWidth, 
  nViewHeight = oView.clientHeight 
 ; 
 
 // 设置当前与实际的比例。 
 oDisplay.setScale(nWidth / nViewWidth, nHeight / nViewHeight); 
 
 }
Salin selepas log masuk

可以在连接成功后设置一些参数信息或者屏幕尺寸等。

做好以上操作之后,就可以在网页上看到一个远程桌面屏幕了哦。

一个简单的远程桌面,是可以操作的哦。有更多其他的参数或者要求的可以参考官网点击打开链接。或者联系我讨论哦

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Canvas如何做出3D动态的Chart图表

H5手机端页面缩放

Atas ialah kandungan terperinci vue项目中如何映入noVNC远程桌面. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Desktop Jauh tidak boleh mengesahkan identiti komputer jauh Desktop Jauh tidak boleh mengesahkan identiti komputer jauh Feb 29, 2024 pm 12:30 PM

Perkhidmatan Desktop Jauh Windows membolehkan pengguna mengakses komputer dari jauh, yang sangat mudah untuk orang yang perlu bekerja dari jauh. Walau bagaimanapun, masalah boleh dihadapi apabila pengguna tidak dapat menyambung ke komputer jauh atau apabila Desktop Jauh tidak dapat mengesahkan identiti komputer. Ini mungkin disebabkan oleh isu sambungan rangkaian atau kegagalan pengesahan sijil. Dalam kes ini, pengguna mungkin perlu menyemak sambungan rangkaian, memastikan komputer jauh berada dalam talian dan cuba menyambung semula. Selain itu, memastikan bahawa pilihan pengesahan komputer jauh dikonfigurasikan dengan betul adalah kunci untuk menyelesaikan isu tersebut. Masalah sedemikian dengan Perkhidmatan Desktop Jauh Windows biasanya boleh diselesaikan dengan menyemak dan melaraskan tetapan dengan teliti. Desktop Jauh tidak boleh mengesahkan identiti komputer jauh kerana perbezaan masa atau tarikh. Sila pastikan pengiraan anda

Cara membuat sambungan desktop jauh memaparkan bar tugas pihak lain Cara membuat sambungan desktop jauh memaparkan bar tugas pihak lain Jan 03, 2024 pm 12:49 PM

Terdapat ramai pengguna yang menggunakan Sambungan Desktop Jauh Ramai pengguna akan menghadapi beberapa masalah kecil apabila menggunakannya, seperti bar tugas pihak lain yang tidak dipaparkan penyelesaian di bawah. Cara untuk memaparkan bar tugas pihak lain semasa Sambungan Desktop Jauh: 1. Pertama, klik "Tetapan". 2. Kemudian buka "Peribadikan". 3. Kemudian pilih "Taskbar" di sebelah kiri 4. Matikan pilihan Hide Taskbar dalam gambar.

Enam alat sambungan jauh yang biasa digunakan, yang manakah anda paling suka? Enam alat sambungan jauh yang biasa digunakan, yang manakah anda paling suka? Feb 22, 2024 pm 06:28 PM

Xshell "Xshell" ialah perisian emulasi terminal selamat yang berkuasa yang menyokong protokol SSH1, SSH2 dan protokol TELNET platform Windows. Dengan menggunakan Xshell di bawah antara muka Windows, pengguna boleh mengakses pelayan jauh dengan mudah dan merealisasikan operasi terminal kawalan jauh. Selain itu, Xshell juga menyediakan pelbagai skema warna penampilan dan pilihan gaya, membolehkan pengguna menyesuaikan mengikut keutamaan peribadi dan meningkatkan pengalaman pengguna. Ciri dan faedah Xshell adalah seperti berikut: Pengurusan Sesi: Gunakan pengurus sesi dan konfigurasi sesi yang boleh diwarisi untuk membuat, mengedit dan memulakan sesi dengan mudah. Sokongan komprehensif: Menyokong pelbagai kaedah pengesahan, protokol atau algoritma untuk mengendalikan pelbagai situasi. cangkerang tempatan

Cara belajar dan menggunakan arahan sambungan jauh Cara belajar dan menggunakan arahan sambungan jauh Jan 12, 2024 pm 07:57 PM

Bagi kebanyakan jurutera yang terlibat dalam operasi dan penyelenggaraan, sambungan jauh Windows adalah sangat penting Penggunaan arahan jauh dengan mahir boleh meningkatkan kecekapan kerja. Hari ini saya akan bercakap tentang cara menggunakan arahan sambungan jauh. Sistem pengendalian Microsoft Windows mempunyai fungsi sambungan jauhnya sendiri Anda boleh menyambung ke komputer jauh melalui arahan sambungan jauh Ramai rakan tidak tahu cara menggunakan arahan sambungan jauh. Cara menggunakan arahan sambungan jauh 1. Tekan kombinasi kekunci windows+R pada papan kekunci untuk membuka kotak dialog run, masukkan perintah sambungan jauh mstsc dalam kotak run dan tekan Enter. Gambar rajah sambungan jauh-12 Kemudian kotak dialog sambungan desktop jauh akan muncul.

Pandangan mendalam pada protokol pengurusan jauh Linux: panduan komprehensif untuk amalan teknikal Pandangan mendalam pada protokol pengurusan jauh Linux: panduan komprehensif untuk amalan teknikal Feb 24, 2024 pm 02:18 PM

"Tafsiran Komprehensif Protokol Pengurusan Jauh Linux: Panduan lengkap untuk amalan teknikal, contoh kod khusus diperlukan" Dengan perkembangan pesat Internet, pengurusan jauh pelayan telah menjadi kaedah yang cekap untuk mengurus pelayan, dan protokol pengurusan jauh di bawah Linux sistem telah menarik lebih banyak perhatian. Artikel ini akan menerangkan secara menyeluruh protokol pengurusan jauh Linux, menyediakan strategi amalan teknikal yang terperinci dan disertakan dengan contoh kod khusus untuk membantu pembaca memahami dan mengamalkan kaedah pengurusan jauh pelayan secara mendalam. 1. Protokol SSH SSH (SecureShell) ialah a

Ancaman Kerentanan Pelaksanaan Kod Jauh Java Ancaman Kerentanan Pelaksanaan Kod Jauh Java Aug 08, 2023 pm 03:21 PM

Ancaman Kerentanan Pelaksanaan Kod Jauh Java Java ialah bahasa pengaturcaraan yang berkuasa dan digunakan secara meluas yang digunakan oleh banyak perusahaan dan pembangun untuk membina aplikasi yang selamat dan boleh dipercayai. Walau bagaimanapun, walaupun Java mempunyai beberapa kelemahan keselamatan, salah satunya ialah kelemahan pelaksanaan kod jauh. Artikel ini akan memperkenalkan ancaman kelemahan pelaksanaan kod jauh Java dan memberikan contoh kod untuk digambarkan. Kerentanan pelaksanaan kod jauh merujuk kepada kelemahan di mana penyerang boleh memasukkan kod hasad untuk menyebabkan aplikasi sasaran melaksanakan kod tersebut. Kerentanan ini biasanya disebabkan oleh aplikasi

Menyahmistikan Protokol Pengurusan Jauh Linux: Fahami semua aspek aplikasi teknologi Menyahmistikan Protokol Pengurusan Jauh Linux: Fahami semua aspek aplikasi teknologi Feb 24, 2024 am 09:21 AM

Protokol pengurusan jauh Linux sentiasa menjadi bahagian penting dalam pengurusan rangkaian Ia mempunyai pelbagai aplikasi, yang melibatkan pengurusan pelayan, penyelenggaraan jauh, pemantauan dan aspek lain. Dalam sistem Linux, terdapat banyak protokol pengurusan jauh, antaranya yang lebih biasa termasuk SSH, Telnet, VNC, dll. Artikel ini akan membincangkan protokol ini, menyelidiki aplikasi teknikal protokol pengurusan jauh Linux, dan menyediakan contoh kod khusus. 1.SSH protokol SSH (SecureShell) ialah a

Cara mengendalikan ralat muat turun imej jauh PHP dan menjana mesej ralat yang sepadan Cara mengendalikan ralat muat turun imej jauh PHP dan menjana mesej ralat yang sepadan Aug 06, 2023 pm 07:57 PM

Cara mengendalikan ralat muat turun imej jauh PHP dan menjana mesej ralat yang sepadan Semasa membangunkan aplikasi web, anda sering menghadapi keperluan untuk memuat turun imej dari pelayan jauh. Walau bagaimanapun, disebabkan pelbagai sebab, anda mungkin menghadapi ralat semasa memuat turun imej. Artikel ini akan memperkenalkan cara mengendalikan ralat muat turun imej jauh dalam PHP dan menjana mesej ralat yang sepadan. Gunakan fungsi file_get_contents untuk memuat turun imej jauh Anda boleh menggunakan fungsi file_get_contents dalam PHP untuk memuat turun imej jauh. Di bawah adalah ringkasan

See all articles