Websockify: Masalah dengan novnc-websockify di Windows

Dibuat pada 17 Feb 2013  ·  26Komentar  ·  Sumber: novnc/websockify

1- Saya mengunduh https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zip

2- Saya membuka zip folder di C: \ Websockify Windows Service

3- Saya mengunduh https://github.com/downloads/kanaka/websockify/websockify.zip

dan unzip serta salin isinya ke C: \ Websockify Windows Service

4- saya mengunduh novnc dari https://github.com/kanaka/noVNC

5- Saya mengekstraknya di C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master

6- Saya menjalankan perintah

C: \ Websockify Windows Service> websockify.exe --web "C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master" 6080 localhost
: 5901

lognya adalah:

PERINGATAN: tidak ada modul 'resource', dukungan daemonizing dinonaktifkan
Pengaturan server WebSocket:

  • Dengarkan: 6080
  • Server kebijakan keamanan flash
  • Server web. Root web: C: \ Users \ waldman \ Downloads \ noVNC-master \ noVNC-master
  • Tidak ada dukungan SSL / TLS (tidak ada file sertifikat)
  • proxy dari: 6080 ke localhost: 5901

Di browser saya, saya akan

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

juga mencoba dengan

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

Server saya terputus -> MENGAPA? ? ?

Server baik-baik saja seperti ketika saya mencoba menggunakan

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

Saya dapat masuk ke server saya tanpa masalah

Jadi pertanyaan saya adalah Apa yang hilang agar saya dapat menggunakan layanan novnc saya dan tidak menggunakan " http://kanaka.github.com/noVNC/noVNC/vnc_auto.html "

Saya ingin memiliki nonvc saya dan tidak menggunakan "kanaka.github.com" eksternal

Terimakasih atas bantuannya

Masalah yang sama BTW terjadi baik di windows & linux (Saya lebih suka solusi windows)

lognya

2: 127.0.0.1: mengabaikan soket tidak siap
3: 127.0.0.1: mengabaikan jabat tangan kosong
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: mengabaikan soket tidak siap
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: mengabaikan soket tidak siap
10: 127.0.0.1: mengabaikan jabat tangan kosong
12: 127.0.0.1: mengabaikan soket tidak siap
13: 127.0.0.1: mengabaikan jabat tangan kosong
14: 127.0.0.1: mengabaikan jabat tangan kosong
15: 127.0.0.1: mengabaikan jabat tangan kosong
16: 127.0.0.1: mengabaikan jabat tangan kosong
17: 127.0.0.1: mengabaikan jabat tangan kosong
18: 127.0.0.1: mengabaikan jabat tangan kosong
19: 127.0.0.1: mengabaikan jabat tangan kosong
20: 127.0.0.1: mengabaikan jabat tangan kosong
21: 127.0.0.1: mengabaikan jabat tangan kosong
22: 127.0.0.1: mengabaikan jabat tangan kosong
23: 127.0.0.1: mengabaikan jabat tangan kosong
24: 127.0.0.1: mengabaikan jabat tangan kosong
25: 127.0.0.1: mengabaikan jabat tangan kosong
26: 127.0.0.1: mengabaikan jabat tangan kosong
27: 127.0.0.1: mengabaikan jabat tangan kosong
28: 127.0.0.1: mengabaikan jabat tangan kosong
29: 127.0.0.1: mengabaikan jabat tangan kosong
30: 127.0.0.1: mengabaikan jabat tangan kosong
31: 127.0.0.1: mengabaikan jabat tangan kosong
33: 127.0.0.1: mengabaikan soket tidak siap
34: 127.0.0.1: mengabaikan jabat tangan kosong
35: 127.0.0.1: mengabaikan jabat tangan kosong
36: 127.0.0.1: mengabaikan jabat tangan kosong

Windows bug patchwelcome

Komentar yang paling membantu

@sonicnkt : Saya berhasil membuat exe (dari versi Node.js) jadi Anda tidak perlu menginstal Node.js dan komponennya.
Ini adalah langkah-langkahnya (saya tidak pernah menggunakan Node.js sebelumnya, jadi saya cukup yakin ada solusi yang lebih singkat):

  1. Instal NodeJS (jalur instalasi global default adalah:% AppData% \ npm,% AppData% \ npm-cache)

  2. Instal komponen yang diperlukan, jalankan:

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm install -g ws
    • npm instal -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. Buat folder bernama "websockify" di bawah "% AppData% \ npm \ node_modules \" dan salin isi folder "websockify \ other \ js" di dalamnya.

  4. Jalankan (dokumentasi argumen -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --target "latest-win-x86, latest- win-x64 "--out-path" folder keluaran Anda "

Semua 26 komentar

@doriwal Saya melihat Anda menutup masalah ini. Apakah itu berarti Anda sudah mengetahuinya?

Tidak, ini masalah terbuka
Pada tanggal 2 18 00:34 2013, "Joel Martin" [email protected] menulis:

@doriwal https://github.com/doriwal Saya melihat Anda menutup masalah ini. Apakah
itu berarti Anda sudah menemukannya?

-
Balas email ini secara langsung atau lihat di Gi tHubhttps: //github.com/kanaka/websockify/issues/67#issuecomment -13698686.

Saya membuka kembali masalah karena belum terpecahkan

Sepertinya novnc lokal saya bekerja,
Saya baru saja menjalankan tes seperti http: // localhost : 6080 / tests / base64.html

dan jawabannya adalah

onload
LULUS: 'window.btoa ("hello world")' diharapkan kembali 'aGVsbG8gd29ybGQ ='
LULUS: 'window.btoa ("a")' mengembalikan yang diharapkan 'YQ =='
LULUS: 'window.btoa ("ab")' mengembalikan yang diharapkan 'YWI ='
LULUS: 'window.btoa ("abc")' mengembalikan diharapkan 'YWJj'
LULUS: 'window.btoa ("abcd")' mengembalikan yang diharapkan 'YWJjZA =='
LULUS: 'window.btoa ("abcde")' mengembalikan yang diharapkan 'YWJjZGU ='
LULUS: 'window.btoa ("abcdef")' mengembalikan diharapkan 'YWJjZGVm'
LULUS: 'window.btoa ("abcdefg")' mengembalikan yang diharapkan 'YWJjZGVmZw =='
LULUS: 'window.btoa ("abcdefgh")' mengembalikan yang diharapkan 'YWJjZGVmZ2g ='
LULUS: 'window.atob ("aGVsbG8gd29ybGQ =")' mengembalikan 'hello world' yang diharapkan
LULUS: 'Base64_decode ("aGVsbG8gd29ybGQ =")' mengembalikan 'hello world' yang diharapkan
LULUS: 'window.atob ("YQ ==")' mengembalikan diharapkan 'a'
LULUS: 'Base64_decode ("YQ ==")' mengembalikan 'a' yang diharapkan
LULUS: 'window.atob ("YWI =")' mengembalikan 'ab' yang diharapkan
LULUS: 'Base64_decode ("YWI =")' mengembalikan 'ab' yang diharapkan
LULUS: 'window.atob ("YWJj")' mengembalikan 'abc' yang diharapkan
LULUS: 'Base64_decode ("YWJj")' mengembalikan 'abc' yang diharapkan
LULUS: 'window.atob ("YWJjZA ==")' mengembalikan 'abcd' yang diharapkan
LULUS: 'Base64_decode ("YWJjZA ==")' mengembalikan 'abcd' yang diharapkan
LULUS: 'window.atob ("YWJjZGU =")' mengembalikan 'abcde' yang diharapkan
LULUS: 'Base64_decode ("YWJjZGU =")' mengembalikan 'abcde' yang diharapkan
LULUS: 'window.atob ("YWJjZGVm")' mengembalikan 'abcdef' yang diharapkan
LULUS: 'Base64_decode ("YWJjZGVm")' mengembalikan 'abcdef' yang diharapkan
LULUS: 'typeof window.btoa' mengembalikan 'fungsi' yang diharapkan
LULUS: 'window.btoa ("")' mengembalikan yang diharapkan ''
LULUS: 'window.btoa (null)' mengembalikan yang diharapkan ''
LULUS: 'window.atob (window.btoa (window))' mengembalikan yang diharapkan '[object Window]'
LULUS: 'window.btoa ("\ u0080 \ u0081")' mengembalikan yang diharapkan 'gIE ='
Tes gagal: 0
Tes lulus: 28

Jadi saya rasa saya telah menginstal novnc secara lokal,

Saya tidak tahu kenapa
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 5901 & true_color = 1
atau
http: // localhost : 6080 / vnc_auto.html? host = localhost & port = 6080 & true_color = 1

mengembalikan "noVNC ready: native WebSockets, canvas rendering" dan setelah 2 detik saya mendapatkan "Connect timeout"

Saya mengalami masalah yang sama dengan websockify.exe yang disertakan dengan noVNC.

Saya tidak yakin apakah itu masalah yang sama, tetapi ketika saya mencoba menjalankan file websocketproxy.py langsung dengan Python 2.7, saya mendapatkan kesalahan ini:

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'

Tampaknya itu karena socket.fromfd tidak diterapkan pada Python 2.x untuk Windows: http://bugs.python.org/issue1378.

Ketika saya mencoba menjalankan websockify dengan Python 3.3, saya mendapatkan pesan kesalahan yang berbeda:

  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 : apakah Anda masih mengalami masalah ini?

Saya bisa menjalankan websockify di Windows jika saya menggunakan Python 3.2. Baik 2.7 maupun 3.3 tampaknya tidak memiliki dukungan yang diperlukan untuk proses pseudo-forking di Windows. Saya belum mencobanya dengan versi lain.

@ smithkl42 : akan tampak bahwa Python acar dan kemudian membongkar Proses untuk melakukan garpu, dan sesuatu di websockify tidak dapat dijadikan acar. Aneh, meskipun, ia bekerja pada 3.2 dan bukan 3.3. Bisakah Anda mendapatkan pelacakan tumpukan yang lebih luas untuk Python 3.3? Saya pikir setidaknya ada baiknya mencoba memperbaiki masalah untuk Python 3.3+ jika kita bisa.

Saya setuju bahwa ini layak diperbaiki. Saya bukan pembuat kode Python, jadi saya tidak yakin bagaimana cara mendapatkan pelacakan tumpukan yang lebih rinci - itulah yang muncul di konsol saya ketika saya mencoba menjalankannya di bawah Python 3.3. Ada saran?

Ups, tidak bermaksud menutup ini. Pasti sudah mengklik tombol yang salah.
Bah! Python 3.3 baru saja keluar dan menolak untuk membuat serialisasi soket:
dari /usr/lib64/python3.3/socket.py :

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

Sementara Python 3.2 tidak menentukan metode __getstate__ sama sekali. Apakah Anda dapat mengonfirmasi bahwa semuanya benar-benar berfungsi dengan baik dengan Python 3.2? Saya tidak dapat melihat pengembang Python secara sewenang-wenang menonaktifkan pengawetan soket di Python 3.3 kecuali sebenarnya ada yang salah dengan cara kerja di 3.2 ...

Ya, 3.2 bekerja dengan baik untuk saya. Saya belum mengujinya di bawah beban, tetapi di bawah beban terbatas yang saya berikan, itu berfungsi dengan baik. Apa pun masalah serialisasi yang mungkin ada, saya curiga mereka pasti jenis yang (karena alasan apa pun) tidak memengaruhi websockify.

@kanaka : Saya mencoba menjalankan websockify di Windows 2012 R2 Standard (64 bit).
Saya telah menginstal versi Python 2.7.11.
Memasang versi 64 bit yang kompatibel dari "py2exe" dan "numpy".
Telah melewati semua masalah yang disebutkan untuk menjalankan novnc di Windows (terutama # 108 dan # 233)

Masalah: Ketika saya mencoba menyambung melalui url web (http: //localhost/vnc.html? Host = localhost & port = 6080), saya mendapatkan pengecualian penangan: "tidak dapat membuat objek thread.lock"
"Kesalahan impor: Tidak ada modul bernama run" dari forking.py

Tolong sarankan resolusi. Saya merasa bahwa belum ada pengalaman yang berhasil menjalankan alat ini di Windows. Tolong beritahu saya jika itu tidak dimaksudkan untuk berjalan di Windows. Atau apakah saya kehilangan sesuatu dari sisi saya? Hargai tanggapan Anda

image

@ kabilraj1979 websockify tidak berfungsi di Windows menggunakan python 2.X. Ada beberapa keberhasilan menggunakan python 3.X. Namun, versi node.js dari websockify tampaknya (saya tidak memiliki sistem Windows untuk diuji) berfungsi cukup baik di Windows jadi saya sarankan Anda menggunakan versi node.js jika itu adalah opsi untuk Anda.

@kanaka : Terima kasih atas tanggapannya. Websockify.js memungkinkan saya untuk terhubung. Terima kasih. Perlu menjelajahi kode apa yang ada di konten web. File js kurang lebih melakukan bagian kirim dan terima dari koneksi soket web (semacam proxy terbalik)?

Apakah ada cara untuk membangun versi nodejs dalam versi skrip / exe sederhana yang mudah diterapkan?
Saya melihat skrip Powershell di sini: https://github.com/aberbegall/novnc-launch-powershell/blob/master/README.md
Tetapi ini memiliki banyak ketergantungan (menginstal nodejs penuh, lalu mengunduh paket tambahan dll), jadi tidak ada cara untuk menerapkan ini dengan mudah untuk saya pada banyak klien.
Tujuan saya adalah mengumpulkan solusi jarak jauh gratis, terbuka, dan independen yang tidak akan bergantung pada server tambahan apa pun.

@kanaka : Setiap kali saya harus melakukan proxy ke server VNC, saya perlu memiliki contoh websockify.js yang berbeda. Adakah cara untuk menjalankannya sebagai pendengar yang dapat mengizinkan banyak koneksi dengan cepat? WebSocketConnections dapat dibuka dari satu contoh websockify.js dengan cepat, bukan?

@ kabilraj1979 beberapa klien dapat terhubung ke contoh websockify.js yang sama pada waktu yang sama. Namun, Anda harus memiliki satu contoh websockify.js per target yang ingin Anda sambungkan. Versi python dari websockify mendukung plugin target yang memungkinkan target untuk dipilih dengan token buram yang disediakan oleh klien. Namun, fungsionalitas ini belum ditransfer ke websockify.js.

Saya menguji SIGCHLD, tetapi seperti yang Anda perhatikan, ada banyak masalah tersisa dengan multiprocessing . Untuk saat ini saya telah menempatkan blok aktif dalam kode sehingga menolak untuk memulai di Windows. Setidaknya harus membuat penanganan masalah kami sedikit lebih lancar.

@sonicnkt : Saya berhasil membuat exe (dari versi Node.js) jadi Anda tidak perlu menginstal Node.js dan komponennya.
Ini adalah langkah-langkahnya (saya tidak pernah menggunakan Node.js sebelumnya, jadi saya cukup yakin ada solusi yang lebih singkat):

  1. Instal NodeJS (jalur instalasi global default adalah:% AppData% \ npm,% AppData% \ npm-cache)

  2. Instal komponen yang diperlukan, jalankan:

    • npm install -g express
    • npm install -g optimist
    • npm install -g policyfile
    • npm install -g ws
    • npm instal -g http-server
    • npm install -g mime-types
    • npm install -g pkg
  3. Buat folder bernama "websockify" di bawah "% AppData% \ npm \ node_modules \" dan salin isi folder "websockify \ other \ js" di dalamnya.

  4. Jalankan (dokumentasi argumen -> https://www.npmjs.com/package/pkg): pkg "% AppData% \ npm \ node_modules \ websockify \ websockify.js" --target "latest-win-x86, latest- win-x64 "--out-path" folder keluaran Anda "

Itu juga bekerja dengan baik untuk saya. Diuji pada Windows 10 dan dengan server Windows noVNC + TigerVNC.

@ gdan101 Bisakah Anda memberi tahu saya versi node apa yang Anda miliki ketika Anda menjalankan ini? Saya mengalami masalah dengan nodejs 10.1.0 dan websockify: https://github.com/novnc/websockify/issues/307#issuecomment -391125660

@mliudev Saya memiliki node-v6.11.4 pada mesin Windows 7 x64!

@kanaka @CendioOssman Apakah NOVNC mendukung koneksi Reverse VNC seperti yang didukung oleh tightvnc.
Referensi: https://kempniu.wordpress.com/2009/03/21/reverse-connections-in-tightvnc/

Bagaimana kita bisa membuka novnc viewer dalam mode mendengarkan jika jawabannya ya untuk pertanyaan di atas.

Kami menggunakan novnc untuk menangkap perangkat di dalam jaringan namun kami ingin menggunakan aplikasi web yang sama untuk menangkap perangkat (vnc) di luar jaringan melalui internet. Ini karena server web tidak dapat menjangkau perangkat dengan ip pribadi di belakang router. Kami ingin menggunakan fitur reverse vnc yang memungkinkan perangkat dengan ip pribadi untuk berbagi layar ke klien novnc di server web

@SiddharthJyoti Tolong hentikan spamming pertanyaan yang sama di beberapa tempat

@samhed Tanggapan cepat Anda atas pertanyaan itu akan dihargai.

noVNC tidak mendukung koneksi balik seperti yang dijelaskan di blog itu.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat