Websockify: Windows์—์„œ novnc-websockify ๋ฌธ์ œ

์— ๋งŒ๋“  2013๋…„ 02์›” 17์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: novnc/websockify

1- https://github.com/downloads/kanaka/websockify/Websockify%20Windows%20Service.zip์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

2- C : \ Websockify Windows Service์—์„œ ํด๋”์˜ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.

3- https://github.com/downloads/kanaka/websockify/websockify.zip ๋‹ค์šด๋กœ๋“œ

์••์ถ•์„ ํ’€๊ณ  C : \ Websockify Windows Service์— ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

4- https://github.com/kanaka/noVNC ์—์„œ novnc๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

5- C : \ Users \ waldman \ DownloadsnoVNC-masternoVNC-master์—์„œ ์••์ถ•์„ ํ’‰๋‹ˆ ๋‹ค.

6- ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

C : \ Websockify Windows ์„œ๋น„์Šค> websockify.exe --web "C : \ Users \ waldman \ DownloadsnoVNC-masternoVNC-master"6080 localhost
: 5901

๋กœ๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ  : '๋ฆฌ์†Œ์Šค'๋ชจ๋“ˆ ์—†์Œ, ๋ฐ๋ชฌ ํ™” ์ง€์› ๋น„ํ™œ์„ฑํ™”
WebSocket ์„œ๋ฒ„ ์„ค์ • :

  • ๋“ฃ๊ธฐ : 6080
  • ํ”Œ๋ž˜์‹œ ๋ณด์•ˆ ์ •์ฑ… ์„œ๋ฒ„
  • ์›น ์„œ๋ฒ„. ์›น ๋ฃจํŠธ : C : \ Users \ waldman \ DownloadsnoVNC-masternoVNC-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"์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

BTW ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ 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 ์„ค์น˜ -g ์ต์Šคํ”„๋ ˆ์Šค
    • npm install -g optimist
    • npm install -g ์ •์ฑ… ํŒŒ์ผ
    • npm ์„ค์น˜ -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm ์„ค์น˜ -g pkg
  3. "% AppData % npmnode_modules \"์•„๋ž˜์— "websockify"๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— "websockify \ other \ js"ํด๋”์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  4. ์‹คํ–‰ (์ธ์ˆ˜ ๋ฌธ์„œ-> https://www.npmjs.com/package/pkg) : pkg "% AppData % npmnode_modules \ websockify \ websockify.js"--targets "latest-win-x86, latest-win-x64 "--out-path"์ถœ๋ ฅ ํด๋” "

๋ชจ๋“  26 ๋Œ“๊ธ€

@doriwal ๋‚˜๋Š” ๋‹น์‹ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์•˜๋‹ค๋Š” ๊ฒƒ์„

๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ ์—†์Œ
2013 ๋…„ 2 ์›” 18 ์ผ 00:34, "Joel Martin" [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@doriwal https://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 ='
ํ†ต๊ณผ : 'window.atob ( "aGVsbG8gd29ybGQ =")'๊ฐ€ ์˜ˆ์ƒ ๋œ 'hello world'๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ†ต๊ณผ : 'Base64_decode ( "aGVsbG8gd29ybGQ =")'๊ฐ€ ์˜ˆ์ƒ ๋œ 'hello world'๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
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 : 'typeof window.btoa'๊ฐ€ ์˜ˆ์ƒ ๋œ 'ํ•จ์ˆ˜'๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
PASS : 'window.btoa ( "")'๋ฐ˜ํ™˜ ์˜ˆ์ƒ ''
PASS : 'window.btoa (null)'๋ฐ˜ํ™˜ ์˜ˆ์ƒ ''
PASS : 'window.atob (window.btoa (window))'๊ฐ€ ์˜ˆ์ƒ ํ•œ '[object Window]'๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
PASS : 'window.btoa ( "u0080u0081")'์—์„œ ์˜ˆ์ƒ ํ•œ '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

"noVNC ์ค€๋น„ : ๋„ค์ดํ‹ฐ๋ธŒ WebSockets, ์บ”๋ฒ„์Šค ๋ Œ๋”๋ง"์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  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'

Windows ์šฉ Python 2.x์—์„œ socket.fromfd ๊ฐ€ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. http://bugs.python.org/issue1378.

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์ด ํฌํฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Process๋ฅผ ํ”ผํด ํ•œ ๋‹ค์Œ ์–ธ ํ”ผํดํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ websockify์˜ ๋ฌด์–ธ๊ฐ€๋Š” ํ”ผํด ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 3.3์ด ์•„๋‹Œ 3.2์—์„œ ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. Python 3.3์— ๋Œ€ํ•ด ๋” ํ™•์žฅ ๋œ ์Šคํƒ ์ถ”์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ€๋Šฅํ•œ ํ•œ Python 3.3+์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ ์–ด๋„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ณ ์น  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” Python ์ฝ”๋”๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋” ์ž์„ธํ•œ ์Šคํƒ ์ถ”์ ์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Python 3.3์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ฝ˜์†”์— ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์ œ์•ˆ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‹ซ์œผ๋ ค๋Š” ๋œป์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Bah! 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 ๊ฐœ๋ฐœ์ž๊ฐ€ Python 3.3์—์„œ ์†Œ์ผ“ ํ”ผํด ๋ง์„ ์ž„์˜๋กœ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ, 3.2๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ถ€ํ•˜ ์ƒํƒœ์—์„œ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ œํ•œ๋œ ๋ถ€ํ•˜ ์•„๋ž˜์—์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง๋ ฌํ™” ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ด๋“ ๊ฐ„์— (์–ด๋–ค ์ด์œ ๋กœ ๋“ ) websockify์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ์ข…๋ฅ˜์˜ ๊ฒƒ์ด์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@kanaka : Windows 2012 R2 Standard (64 ๋น„ํŠธ)์—์„œ websockify๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
Python 2.7.11 ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
"py2exe"๋ฐ "numpy"์˜ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ 64 ๋น„ํŠธ ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
Windows์—์„œ novnc ์‹คํ–‰์— ๋Œ€ํ•ด ์–ธ๊ธ‰ ๋œ ๋ชจ๋“  ๋ฌธ์ œ (ํŠนํžˆ # 108 ๋ฐ # 233)๋ฅผ ๊ฒ€ํ† ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ : ์›น URL (http : //localhost/vnc.html? host = localhost & port = 6080)์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๋ ค๊ณ ํ•˜๋ฉด ์ฒ˜๋ฆฌ๊ธฐ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. "thread.lock ๊ฐœ์ฒด๋ฅผ ํ”ผํด ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."
forking.py์—์„œ "๊ฐ€์ ธ ์˜ค๊ธฐ ์˜ค๋ฅ˜ : run์ด๋ผ๋Š” ๋ชจ๋“ˆ์ด ์—†์Šต๋‹ˆ๋‹ค."

ํ•ด๊ฒฐ์ฑ…์„ ์ œ์•ˆํ•˜์‹ญ์‹œ์˜ค. Windows์—์„œ์ด ๋„๊ตฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Windows์—์„œ ์‹คํ–‰ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ์•„๋‹ˆ๋ฉด ๋‚ด ํŽธ์—์„œ ๋ญ”๊ฐ€ ๋น ์กŒ๋‚˜์š”? ๊ท€ํ•˜์˜ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค

image

@ kabilraj1979 websockify๋Š” python 2.X๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Windows์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ 3.X๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ websockify์˜ node.js ๋ฒ„์ „ (ํ…Œ์ŠคํŠธ ํ•  Windows ์‹œ์Šคํ…œ์ด ์—†์Œ)์€ Windows์—์„œ ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์˜ต์…˜ ์ธ ๊ฒฝ์šฐ node.js ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@kanaka : ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. websockify.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ. ์›น ์ฝ˜ํ…์ธ ์— ์–ด๋–ค ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํƒ์ƒ‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. js ํŒŒ์ผ์€ ์›น ์†Œ์ผ“ ์—ฐ๊ฒฐ (์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ์˜ ์ผ์ข…)์˜ ์ผ๋ถ€๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๊ธฐ๋ฅผ ๋‹ค์†Œ๊ฐ„ ์ˆ˜ํ–‰ ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋ฐฐํฌํ•˜๊ธฐ ์‰ฌ์šด ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ / exe ๋ฒ„์ „์œผ๋กœ nodejs ๋ฒ„์ „์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์—ฌ๊ธฐ์—์„œ Powershell ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค : https://github.com/aberbegall/novnc-launch-powershell/blob/master/README.md
๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋งŽ์€ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์ „์ฒด nodejs ์„ค์น˜, ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ ๋“ฑ). ๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์— ์‰ฝ๊ฒŒ ๋ฐฐํฌ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ชฉํ‘œ๋Š” ์ถ”๊ฐ€ ์„œ๋ฒ„์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋ฌด๋ฃŒ ๊ฐœ๋ฐฉํ˜• ๋…๋ฆฝ ์›๊ฒฉ ์†”๋ฃจ์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

@kanaka : VNC ์„œ๋ฒ„์— ํ”„๋ก์‹œํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค

@ kabilraj1979 ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์‹œ์— websockify.js์˜ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๋Œ€์ƒ ๋‹น ํ•˜๋‚˜์˜ websockify.js ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. websockify์˜ Python ๋ฒ„์ „์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ถˆํˆฌ๋ช… ํ† ํฐ์œผ๋กœ ๋Œ€์ƒ์„ ์„ ํƒํ•  ์ˆ˜์žˆ๋Š” ๋Œ€์ƒ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ๊ธฐ๋Šฅ์€ ์•„์ง websockify.js๋กœ ํฌํŒ…๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

SIGCHLD๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ multiprocessing ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ๋‚จ์•„ ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ Windows์—์„œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋„๋ก ์ฝ”๋“œ์— ํ™œ์„ฑ ๋ธ”๋ก์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋ฌธ์ œ๋ฅผ ์ข€ ๋” ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@sonicnkt : Node.js ๋ฒ„์ „์—์„œ exe๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฏ€๋กœ Node.js์™€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค (์ด์ „์— Node.js๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์œผ๋ฏ€๋กœ ๋” ์งง์€ ์†”๋ฃจ์…˜์ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค).

  1. NodeJS ์„ค์น˜ (๊ธฐ๋ณธ ์ „์—ญ ์„ค์น˜ ๊ฒฝ๋กœ : % AppData % npm, % AppData % npm-cache)

  2. ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • npm ์„ค์น˜ -g ์ต์Šคํ”„๋ ˆ์Šค
    • npm install -g optimist
    • npm install -g ์ •์ฑ… ํŒŒ์ผ
    • npm ์„ค์น˜ -g ws
    • npm install -g http-server
    • npm install -g mime-types
    • npm ์„ค์น˜ -g pkg
  3. "% AppData % npmnode_modules \"์•„๋ž˜์— "websockify"๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— "websockify \ other \ js"ํด๋”์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  4. ์‹คํ–‰ (์ธ์ˆ˜ ๋ฌธ์„œ-> https://www.npmjs.com/package/pkg) : pkg "% AppData % npmnode_modules \ websockify \ websockify.js"--targets "latest-win-x86, latest-win-x64 "--out-path"์ถœ๋ ฅ ํด๋” "

๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Windows 10 ๋ฐ noVNC + TigerVNC Windows ์„œ๋ฒ„์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@ gdan101 ์ด๊ฒƒ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋…ธ๋“œ์˜ ๋ฒ„์ „์„ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? nodejs 10.1.0 ๋ฐ websockify์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : https://github.com/novnc/websockify/issues/307#issuecomment -391125660

@mliudev Windows 7 x64 ์‹œ์Šคํ…œ์— node-v6.11.4๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

@kanaka @CendioOssman NOVNC ๋Š” tightvnc์—์„œ ์ง€์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Reverse VNC ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๊นŒ?
์ฐธ์กฐ : https://kempniu.wordpress.com/2009/03/21/reverse-connections-in-tightvnc/

์œ„ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์ด '์˜ˆ'์ธ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ novnc ๋ทฐ์–ด๋ฅผ ์ฒญ์ทจ ๋ชจ๋“œ๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

novnc๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์˜ ์žฅ์น˜๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์™ธ๋ถ€์˜ ์žฅ์น˜๋ฅผ ์บก์ฒ˜ (vnc)ํ•˜๋Š” ๋ฐ ๋™์ผํ•œ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ๋ผ์šฐํ„ฐ ๋’ค์—์žˆ๋Š” ๊ฐœ์ธ IP๋กœ ์žฅ์น˜์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ IP๊ฐ€์žˆ๋Š” ์žฅ์น˜๊ฐ€ ์›น ์„œ๋ฒ„์˜ novnc ํด๋ผ์ด์–ธํŠธ์™€ ํ™”๋ฉด์„ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ๋ฆฌ๋ฒ„์Šค vnc ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@SiddharthJyoti ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๊ฐ™์€ ์งˆ๋ฌธ์— ์ŠคํŒธ์„

@samhed ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์‹ ์†ํ•œ ๋‹ต๋ณ€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

noVNC๋Š” ํ•ด๋‹น ๋ธ”๋กœ๊ทธ์— ์„ค๋ช… ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์—ญ๋ฐฉํ–ฅ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰