ホームページ ウェブフロントエンド H5 チュートリアル vueプロジェクトにnoVNCリモートデスクトップを反映させる方法

vueプロジェクトにnoVNCリモートデスクトップを反映させる方法

Mar 27, 2018 pm 02:54 PM
リモートで

今回は、vue プロジェクトで noVNC リモート デスクトップをマッピングする方法を説明します。vue プロジェクトで noVNC リモート デスクトップをマッピングする際の 注意事項 は何ですか。実際のケースを見てみましょう。

1. まず、コンセプトを簡単に紹介します。

VNCServer は、サーバー リソースを共有する分散ユーザーを満たすためにサーバー上で開始されるサービスです。対応するクライアント ソフトウェアには、グラフィカル クライアント VNCViewer が含まれます。noVNC は、HTML 5 WebSocket、Canvas、および JavaScript 実装を使用する HTML5 VNC クライアントです。 。

noVNC は、主要なクラウド コンピューティングや仮想マシンのコントロール パネルで広く使用されています。 noVNC は WebSocket を使用して実装されていますが、現在のほとんどの VNC サーバーは WebSocket をサポートしていないため、noVNC は VNC サーバーに直接接続できません。代わりに、WebSocket と TCP ソケット間の変換を行うにはプロキシを有効にする必要があります。このプロキシは websockify と呼ばれます。

2. プロジェクトにはこのような要件があります。システムには複数の機能ページがありますが、その機能には物理端末デバイス 上の元の機能も含まれます (コンピューター上の後の仮想端末クライアントを含む)。 . このNoVNCを使用します。利点としては、新規プロジェクトに他の機能体系(またはページ)を埋め込むことができ、上記機能をクリック操作等で操作することで、一時的に問題を解決できることもあります。

3. プロジェクトフレームワークはvueなので、以下は全てフロントエンド実装部分です

まず、noVNCライブラリを導入します。導入には 2 つの方法があります。1 つは、ソース コードを独自のプロジェクトに直接ダウンロードする方法です。この方法の問題点については、以下で詳しく説明します。2 つ目は、webpack を使用する場合は、npm を使用して依存関係をインストールします。どちらの方が便利です。

git clone git://github.com/novnc/noVNC
ログイン後にコピー

以下は詳細なコード部分です

HTML

npm install @novnc/novnc
ログイン後にコピー
Script

<template> 
 <p class="page-home" ref="canvas"> 
 <canvas id="noVNC_canvas" width="800" height="600"> 
 Canvas not supported. 
 </canvas> 
 </p> 
</template>
ログイン後にコピー
最初のimportメソッドを使用するため、リソースの導入にはimportメソッドを使用します。なお、特定のファイルを導入する場合、プロジェクトはes6構文に基づいているため、外部jsの導入方法が若干異なります。たとえば、webutil.js ファイルを導入する場合、正しく使用できるようにするには、エクスポート デフォルトを追加する必要があります。インポート時にファイルを少し変更できます。ファイル内に対応するメモと説明があります。

リソースを紹介したら、次のステップはそれらを使用する方法ですが、これは実際には複雑ではありません。言うことはあまりありません。始めましょう。

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'
ログイン後にコピー
まず、methodライフサイクルでメソッドを定義し、その中に初期化関連の操作を記述します。次に、マウントされたライフサイクルで this.connectVnc() を呼び出します。このライフサイクル内で呼び出す必要があります。そうしないと、キャンバスが初期化されていない場合に DOM 構造を取得できません。

簡単に説明すると、使用されるメソッドや属性を含むオブジェクトをインスタンス化し、connect メソッドを呼び出し、ホスト、ポート、パスワード、およびパスのパラメーターを渡して接続を確立します。

接続成功後のコールバック_.onCompleteHandlerと接続成功後のコールバック_disconnectedの2つのメソッドがあります

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);
 })
 },
ログイン後にコピー
接続成功後にパラメータ情報や画面サイズを設定することができます。

上記の操作が完了すると、Webページにリモートデスクトップ画面が表示されます。

簡単なリモートデスクトップが操作可能です。その他のパラメータや要件がある場合は、公式 Web サイトを参照してくださいクリックしてリンクを開きます

。または、議論のために私に連絡してください

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

Canvas を使用して 3D 動的チャートを作成する方法


H5 モバイル ページ ズーム

以上がvueプロジェクトにnoVNCリモートデスクトップを反映させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

リモート デスクトップがリモート コンピュータの ID を認証できない リモート デスクトップがリモート コンピュータの ID を認証できない Feb 29, 2024 pm 12:30 PM

Windows リモート デスクトップ サービスを使用すると、ユーザーはコンピュータにリモート アクセスできるため、リモートで作業する必要がある人にとっては非常に便利です。ただし、ユーザーがリモート コンピュータに接続できない場合、またはリモート デスクトップがコンピュータの ID を認証できない場合、問題が発生する可能性があります。これは、ネットワーク接続の問題または証明書の検証の失敗が原因である可能性があります。この場合、ユーザーはネットワーク接続をチェックし、リモート コンピュータがオンラインであることを確認して、再接続を試行する必要がある場合があります。また、リモート コンピュータの認証オプションが正しく構成されていることを確認することが、問題を解決する鍵となります。 Windows リモート デスクトップ サービスに関するこのような問題は、通常、設定を注意深く確認して調整することで解決できます。時間または日付の違いにより、リモート デスクトップはリモート コンピューターの ID を確認できません。計算を確認してください

リモートデスクトップ接続で相手のタスクバーを表示させる方法 リモートデスクトップ接続で相手のタスクバーを表示させる方法 Jan 03, 2024 pm 12:49 PM

リモートデスクトップ接続を利用しているユーザーは多いですが、利用中に相手のタスクバーが表示されないなどのちょっとしたトラブルに遭遇する人も多いと思いますが、実は相手の設定の問題である可能性が高いです。以下の解決策。リモートデスクトップ接続時に相手のタスクバーを表示する方法: 1. まず「設定」をクリックします。 2. 次に「個人用設定」を開きます。 3. 次に、左側の「タスクバー」を選択します。 4. 画像の「タスクバーを非表示にする」オプションをオフにします。

よく使われる 6 つのリモート接続ツールのうち、どれが一番気に入っていますか? よく使われる 6 つのリモート接続ツールのうち、どれが一番気に入っていますか? Feb 22, 2024 pm 06:28 PM

Xshell 「Xshell」は、Windows プラットフォームの SSH1、SSH2 プロトコルおよび TELNET プロトコルをサポートする強力なセキュア ターミナル エミュレーション ソフトウェアです。 Windowsインターフェイス下でXshellを使用することで、ユーザーは簡単にリモートサーバーにアクセスし、リモート制御端末の操作を実現できます。さらに、Xshell ではさまざまな外観の配色とスタイルの選択肢も提供されているため、ユーザーは個人の好みに応じてカスタマイズし、ユーザー エクスペリエンスを向上させることができます。 Xshell の機能と利点は次のとおりです。 セッション管理: セッション マネージャーと継承可能なセッション構成を使用して、セッションを簡単に作成、編集、開始します。包括的なサポート: さまざまな状況に対処するために、複数の検証方法、プロトコル、またはアルゴリズムをサポートします。ローカルシェル

リモート接続コマンドを学習して使用する方法 リモート接続コマンドを学習して使用する方法 Jan 12, 2024 pm 07:57 PM

運用保守に携わる多くのエンジニアにとって、Windows のリモート接続は非常に重要であり、リモートコマンドを使いこなすことで作業効率が大幅に向上します。今回はリモート接続コマンドの使い方についてお話します。 Microsoft Windows オペレーティング システムには、独自のリモート接続機能があります。リモート接続コマンドを使用して、リモート コンピュータに接続できます。リモート接続コマンドの使い方を知らない友人もたくさんいます。エディターがどのように操作するかを見てみましょう。リモート接続コマンドの使用方法 1. キーボードの Windows + R キーを押してファイル名を指定して実行ダイアログ ボックスを開き、実行ボックスにリモート接続コマンド mstsc を入力して Enter キーを押します。リモート接続図-12. するとリモートデスクトップ接続ダイアログボックスが表示されるので、コンピュータ名またはIPアドレスを入力します。

Linux リモート管理プロトコルの詳細: 技術実践のための包括的なガイド Linux リモート管理プロトコルの詳細: 技術実践のための包括的なガイド Feb 24, 2024 pm 02:18 PM

「Linux リモート管理プロトコルの包括的な解釈: 技術実践への完全なガイド、特定のコード例が必要です」 インターネットの急速な発展に伴い、サーバーのリモート管理はサーバーを管理する効率的な方法となり、Linux でのリモート管理プロトコルシステムはさらに注目を集めています。この記事では、Linux リモート管理プロトコルを包括的に説明し、詳細な技術実践戦略を提供し、読者がサーバーのリモート管理方法を深く理解して実践できるようにする具体的なコード例を示します。 1. SSH プロトコル SSH (SecureShell) は、

Java リモートコード実行の脆弱性の脅威 Java リモートコード実行の脆弱性の脅威 Aug 08, 2023 pm 03:21 PM

Java リモート コード実行の脆弱性の脅威 Java は強力で広く使用されているプログラミング言語であり、安全で信頼性の高いアプリケーションを構築するために多くの企業や開発者によって使用されています。ただし、Java にもセキュリティ上の脆弱性がいくつかあり、そのうちの 1 つはリモート コード実行の脆弱性です。この記事では、Java リモート コード実行の脆弱性の脅威を紹介し、コード例を示して説明します。リモート コード実行の脆弱性とは、攻撃者が悪意のあるコードを入力してターゲット アプリケーションにコードを実行させることができる脆弱性を指します。この脆弱性は通常、アプリケーションが原因で発生します。

PHP リモート イメージ ダウンロード エラーを処理し、対応するエラー メッセージを生成する方法 PHP リモート イメージ ダウンロード エラーを処理し、対応するエラー メッセージを生成する方法 Aug 06, 2023 pm 07:57 PM

PHP リモート イメージ ダウンロード エラーを処理し、対応するエラー メッセージを生成する方法 Web アプリケーションを開発するとき、リモート サーバーからイメージをダウンロードする必要がよく発生します。ただし、さまざまな理由により、画像のダウンロード中にエラーが発生する場合があります。この記事では、PHP でのリモート イメージのダウンロード エラーを処理し、対応するエラー メッセージを生成する方法を紹介します。 file_get_contents 関数を使用してリモート イメージをダウンロードする PHP の file_get_contents 関数を使用して、リモート イメージをダウンロードできます。以下は概要です

Linux リモート管理プロトコルの謎を解く: テクノロジー アプリケーションのあらゆる側面を理解する Linux リモート管理プロトコルの謎を解く: テクノロジー アプリケーションのあらゆる側面を理解する Feb 24, 2024 am 09:21 AM

Linux リモート管理プロトコルは常にネットワーク管理の重要な部分を占めており、サーバー管理、リモート メンテナンス、監視などの幅広い用途に使用されています。 Linux システムには多くのリモート管理プロトコルがあり、その中には SSH、Telnet、VNC などが含まれます。この記事では、これらのプロトコルに焦点を当て、Linux リモート管理プロトコルの技術的アプリケーションを詳しく掘り下げ、具体的なコード例を示します。 1.SSHプロトコル SSH(SecureShell)とは、

See all articles