Websockify: Windowsでのnovnc-websockifyの問題

作成日 2013年02月17日  ·  26コメント  ·  ソース: novnc/websockify

1- https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zipをダウンロードし

2- C:\ WebsockifyWindowsサービスのフォルダーを解凍します

3-私はhttps://github.com/downloads/kanaka/websockify/websockify.zipをダウンロードし

コンテンツを解凍してC:\ WebsockifyWindowsサービスにコピーします

4-私はhttps://github.com/kanaka/noVNCからnovncをダウンロードし

5- C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-masterで解凍します

6-コマンドを実行します

C:\ WebsockifyWindowsサービス> websockify.exe --web "C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master" 6080 localhost
:5901

ログは:

警告:「リソース」モジュールがなく、デーモン化のサポートが無効になっています
WebSocketサーバーの設定:

  • 聞く:6080
  • フラッシュセキュリティポリシーサーバー
  • Webサーバー。 Webルート:C:\ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • SSL / TLSサポートなし(証明書ファイルなし)
  • :6080からlocalhost:5901へのプロキシ

私のブラウザで私は行きます

http:// localhost :6080 / vnc_auto.html?host = localhost&port = 6080&true_color = 1

また試してみました

http:// localhost :6080 / vnc_auto.html?host = localhost&port = 5901&true_color = 1

サーバーが切断されます->なぜですか? ? ?

私が使おうとしているときのようにサーバーは大丈夫です

http://kanaka.github.com/noVNC/noVNC/vnc_auto.html?host=localhost&port=5901&true_color=1

サーバーに問題なくログインできます

だから私の質問は、私がnovncサービスを使用できるようにし、「 http://kanaka.github.com/noVNC/noVNC/vnc_auto.html 」を使用しないために何が欠けているかです。

nonvcを使用し、外部の「kanaka.github.com」を使用したくない

手伝ってくれてありがとう

ところで、同じ問題がWindowsとLinuxの両方で発生しました(私はWindowsソリューションを好みます)

ログは

2:127.0.0.1:準備ができていないソケットを無視する
3:127.0.0.1:空のハンドシェイクを無視する
4:127.0.0.1: "GET /auto.vnc.html?host=localhost&port=6080&true_color=1 HTTP / 1.1" 404-
5:127.0.0.1:準備ができていないソケットを無視する
6:127.0.0.1: "GET /auto-vnc.html?host=localhost&port=6080&true_color=1 HTTP / 1.1" 404-
9:127.0.0.1:準備ができていないソケットを無視する
10:127.0.0.1:空のハンドシェイクを無視する
12:127.0.0.1:準備ができていないソケットを無視する
13:127.0.0.1:空のハンドシェイクを無視する
14:127.0.0.1:空のハンドシェイクを無視する
15:127.0.0.1:空のハンドシェイクを無視する
16:127.0.0.1:空のハンドシェイクを無視する
17:127.0.0.1:空のハンドシェイクを無視する
18:127.0.0.1:空のハンドシェイクを無視する
19:127.0.0.1:空のハンドシェイクを無視する
20:127.0.0.1:空のハンドシェイクを無視する
21:127.0.0.1:空のハンドシェイクを無視する
22:127.0.0.1:空のハンドシェイクを無視する
23:127.0.0.1:空のハンドシェイクを無視する
24:127.0.0.1:空のハンドシェイクを無視する
25:127.0.0.1:空のハンドシェイクを無視する
26:127.0.0.1:空のハンドシェイクを無視する
27:127.0.0.1:空のハンドシェイクを無視する
28:127.0.0.1:空のハンドシェイクを無視する
29:127.0.0.1:空のハンドシェイクを無視する
30:127.0.0.1:空のハンドシェイクを無視する
31:127.0.0.1:空のハンドシェイクを無視する
33:127.0.0.1:準備ができていないソケットを無視する
34:127.0.0.1:空のハンドシェイクを無視する
35:127.0.0.1:空のハンドシェイクを無視する
36:127.0.0.1:空のハンドシェイクを無視する

Windows bug patchwelcome

最も参考になるコメント

@sonicnkt :(Node.jsバージョンから)exeを作成できたので、Node.jsとコンポーネントをインストールする必要はありません。
手順は次のとおりです(これまでNode.jsを使用したことがないため、より短い解決策があると確信しています)。

  1. NodeJSをインストールします(デフォルトのグローバルインストールパスは%AppData%\ npm、%AppData%\ npm-cacheです)

  2. 必要なコンポーネントをインストールし、以下を実行します。

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm install -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. 「%AppData%\ npm \ node_modules \」の下に「websockify」という名前のフォルダーを作成し、その中のフォルダー「websockify \ other \ js」の内容をコピーします。

  4. 実行(引数のドキュメント-> https://www.npmjs.com/package/pkg):pkg "%AppData%\ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86、latest- win-x64 "--out-path"出力フォルダー "

全てのコメント26件

@doriwal問題

いいえ、未解決の問題です
2013 2 18 00:34に、「JoelMartin」 [email protected]は次のように書いています。

@doriwalhttps ://github.com/doriwal問題を解決したことに気づきました。 しますか
それはあなたがそれを理解したという意味ですか?


このメールに直接返信するか、Gi tHubhttps://github.com/kanaka/websockify/issues/67#issuecomment-13698686で表示してください。

解決されなかったため、問題を再開しました

私の地元のnovncが働いているようです、
http:// localhost :6080 / tests /base64.htmlのようなテストを実行するだけです

応答は

オンロード
PASS: 'window.btoa( "hello world")'期待値を返しました 'aGVsbG8gd29ybGQ ='
PASS: 'window.btoa( "a")'が期待される 'YQ =='を返しました
PASS: 'window.btoa( "ab")'は期待される 'YWI ='を返しました
PASS: 'window.btoa( "abc")'が期待される 'YWJj'を返しました
PASS: 'window.btoa( "abcd")'が期待どおりに返されました 'YWJjZA =='
PASS: 'window.btoa( "abcde")'が期待される 'YWJjZGU ='を返しました
PASS: 'window.btoa( "abcdef")'が期待される 'YWJjZGVm'を返しました
PASS: 'window.btoa( "abcdefg")'が期待どおりに返されました 'YWJjZGVmZw =='
PASS: 'window.btoa( "abcdefgh")'が期待どおりに返されました 'YWJjZGVmZ2g ='
PASS: 'window.atob( "aGVsbG8gd29ybGQ =")'が期待される 'helloworld'を返しました
PASS: 'Base64_decode( "aGVsbG8gd29ybGQ =")'が期待される 'helloworld'を返しました
PASS: 'window.atob( "YQ ==")'が期待される 'a'を返しました
PASS: 'Base64_decode( "YQ ==")'が期待される 'a'を返しました
PASS: 'window.atob( "YWI =")'が期待される 'ab'を返しました
PASS: 'Base64_decode( "YWI =")'が期待される 'ab'を返しました
PASS: 'window.atob( "YWJj")'が期待される 'abc'を返しました
PASS: 'Base64_decode( "YWJj")'が期待される 'abc'を返しました
PASS: 'window.atob( "YWJjZA ==")'が期待される 'abcd'を返しました
PASS: 'Base64_decode( "YWJjZA ==")'が期待される 'abcd'を返しました
PASS: 'window.atob( "YWJjZGU =")'が期待される 'abcde'を返しました
PASS: 'Base64_decode( "YWJjZGU =")'が期待される 'abcde'を返しました
PASS: 'window.atob( "YWJjZGVm")'が期待される 'abcdef'を返しました
PASS: 'Base64_decode( "YWJjZGVm")'が期待される 'abcdef'を返しました
PASS: 'typeofwindow.btoa'が期待される '関数'を返しました
PASS: 'window.btoa( "")'が期待どおりに返されました ''
PASS: 'window.btoa(null)'が期待どおりに返されました ''
PASS: 'window.atob(window.btoa(window))'が期待される '[オブジェクトウィンドウ]'を返しました
PASS: 'window.btoa( "\ u0080 \ u0081")'が期待される 'gIE ='を返しました
テストに失敗しました:0
合格したテスト:28

だから私はnovncをローカルにインストールしたと思います、

理由がわからない
http:// localhost :6080 / vnc_auto.html?host = localhost&port = 5901&true_color = 1
または
http:// localhost :6080 / vnc_auto.html?host = localhost&port = 6080&true_color = 1

「noVNCready:ネイティブWebSocket、キャンバスレンダリング」が返され、2秒後に「接続タイムアウト」が発生します

noVNCに付属のwebsockify.exeで同じ問題が発生していました。

同じ問題かどうかはわかりませんが、Python 2.7でwebsocketproxy.pyファイルを直接実行しようとすると、次のエラーが発生します。

WARNING: no 'resource' module, daemonizing is slower or disabled
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python27\lib\multiprocessing\forking.py", line 374, in main
    self = load(from_parent)
  File "C:\Python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 858, in load
    dispatch[key](self)
  File "C:\Python27\lib\pickle.py", line 1133, in load_reduce
    value = func(*args)
  File "C:\Python27\lib\multiprocessing\reduction.py", line 193, in rebuild_socket
    _sock = fromfd(fd, family, type_, proto)
  File "C:\Python27\lib\multiprocessing\reduction.py", line 182, in fromfd
    s = socket.fromfd(fd, family, type_, proto)
AttributeError: 'module' object has no attribute 'fromfd'

どうやらそれはsocket.fromfdがWindows用のPython 2.xに実装されていないためです: http

Python 3.3でwebsockifyを実行しようとすると、別のエラーメッセージが表示されます。

  1: handler exception: Cannot serialize socket object
WARNING: no 'resource' module, daemonizing is slower or disabled
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python33\lib\multiprocessing\forking.py", line 344, in main
    self = load(from_parent)
EOFError

@ doriwal@ smithkl42 :まだこの問題が発生していますか?

Python 3.2を使用した場合、Windows上でwebsockifyを実行することができました。 2.7も3.3も、Windowsでの疑似フォークプロセスに必要なサポートを持っていないようです。 他のバージョンでは試していません。

@ smithkl42 :Pythonはフォークを実行するためにプロセスをピクルし、次にピクル解除するように見えますが、websockifyの何かはピクルできません。 ただし、3.3ではなく3.2で動作するのは奇妙です。 Python 3.3のより拡張されたスタックトレースを取得できますか? 可能であれば、Python3.3以降の問題を修正することは少なくとも価値があると思います。

修正する価値があることに同意します。 私はPythonコーダーではないので、より詳細なスタックトレースを取得する方法がわかりません。これは、Python3.3で実行しようとするとコンソールに表示されるものです。 助言がありますか?

おっと、これを閉じるつもりはなかった。 間違ったボタンをクリックしたに違いありません。
ああ! Python 3.3は、ソケットのシリアル化を拒否します。
/usr/lib64/python3.3/socket.py

    def __getstate__(self):
        raise TypeError("Cannot serialize socket object")

Python 3.2は__getstate__メソッドをまったく指定していませんが。 Python 3.2で実際に正しく機能することを確認できましたか? 3.2での動作に実際に何か問題がない限り、Python開発者がPython3.3でソケットのピッキングを任意に無効にしているのを見ることができません...

ええ、3.2は私にとってはうまく機能しています。 私はそれを負荷の下でテストしていませんが、私がそれに投げた限られた負荷の下で、それはうまく機能しています。 シリアル化の問題がどのようなものであっても、(何らかの理由で)websockifyに影響を与えない種類のものである必要があると思います。

@kanaka :Windows 2012 R2 Standard(64ビット)でwebsockifyを実行しようとしています。
Python2.7.11バージョンをインストールしました。
互換性のある64ビットバージョンの「py2exe」と「numpy」をインストールしました。
Windowsでnovncを実行するために言及されたすべての問題(特に#108と#233)を通過しました

問題:Web URL(http://localhost/vnc.html?host = localhost&port = 6080)を介して接続しようとすると、ハンドラー例外が発生します:「thread.lockオブジェクトを選択できません」
forking.pyからの「インポートエラー:runという名前のモジュールがありません」

解決策を提案してください。 Windowsでこのツールを実行する上での堅牢な成功体験はなかったように感じます。 Windowsでの実行を目的としていない場合はお知らせください。 それとも私は私の側から何かを逃していますか? あなたの応答に感謝します

image

@ kabilraj1979 websockifyは、

@kanaka :ご回答ありがとうございます。 websockify.jsで接続できました。 ありがとう。 Webコンテンツにどのようなコードがあるかを調べる必要があります。 jsファイルは多かれ少なかれWebソケット接続の送受信部分(リバースプロキシの一種)を実行していましたか?

デプロイが簡単な単純なscript / exeバージョンでnodejsバージョンをビルドする方法はありますか?
ここでPowershellスクリプトを見ました: https
ただし、依存関係がたくさんあるため(完全なnodejsをインストールしてから、追加のパッケージをダウンロードするなど)、これを複数のクライアントに簡単にデプロイする方法はありません。
私の目標は、追加のサーバーに依存しない、無料のオープンで独立したリモートソリューションをまとめることでした。

@kanaka :VNCサーバーにプロキシする必要があるたびに、websockify.jsのさまざまなインスタンスを用意する必要があります。 その場で複数の接続を許可できるリスナーとして実行する方法はありますか? WebSocketConnectionsは、websockify.jsの1つのインスタンスからその場で開くことができますか?

@ kabilraj1979複数のクライアントが、websockify.jsの同じインスタンスに同時に接続できます。 ただし、接続するターゲットごとにwebsockify.jsのインスタンスが1つ必要です。 websockifyのPythonバージョンは、クライアントが提供する不透明なトークンによってターゲットを選択できるようにするターゲットプラグインをサポートしています。 ただし、この機能はまだwebsockify.jsに移植されていません。

SIGCHLDをテストしましたが、お気づきのとおり、 multiprocessingは多くの問題が残っています。 今のところ、コードにアクティブなブロックを配置したので、Windowsでの起動を拒否します。 少なくとも問題の処理が少しスムーズになるはずです。

@sonicnkt :(Node.jsバージョンから)exeを作成できたので、Node.jsとコンポーネントをインストールする必要はありません。
手順は次のとおりです(これまでNode.jsを使用したことがないため、より短い解決策があると確信しています)。

  1. NodeJSをインストールします(デフォルトのグローバルインストールパスは%AppData%\ npm、%AppData%\ npm-cacheです)

  2. 必要なコンポーネントをインストールし、以下を実行します。

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm install -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. 「%AppData%\ npm \ node_modules \」の下に「websockify」という名前のフォルダーを作成し、その中のフォルダー「websockify \ other \ js」の内容をコピーします。

  4. 実行(引数のドキュメント-> https://www.npmjs.com/package/pkg):pkg "%AppData%\ npm \ node_modules \ websockify \ websockify.js" --targets "latest-win-x86、latest- win-x64 "--out-path"出力フォルダー "

それは私にとってもうまくいきます。 Windows 10で、noVNC + TigerVNCWindowsサーバーでテスト済み。

@ gdan101これを実行したときに使用していたノードのバージョンを教えてください。 nodejs 10.1.0とwebsockifyで問題が発生しています: https

@mliudev Windows 7 x64マシンにnode-v6.11.4がありました!

@kanaka @CendioOssman NOVNCは、tightvncでサポートされている方法で逆VNC接続をサポートしていますか。
参照: https

上記の質問に対する答えが「はい」の場合、どうすればnovncビューアをリスニングモードで開くことができますか。

ネットワーク内のデバイスをキャプチャするためにnovncを使用していますが、インターネットを介してネットワーク外のデバイスをキャプチャするために同じWebアプリケーションを使用したいと考えています。 これは、Webサーバーがルーターの背後にあるプライベートIPを持つデバイスに到達できないためです。 プライベートIPを持つデバイスがWebサーバー上のnovncクライアントと画面を共有できるようにする逆vnc機能を使用したいと思います

@SiddharthJyoti複数の場所で同じ質問をスパムするのを止めてください

@samhed質問に対する迅速な回答を

noVNCは、そのブログで説明されているような逆接続をサポートしていません。

このページは役に立ちましたか?
0 / 5 - 0 評価