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 ์๋ฒ ์ค์ :
๋ด ๋ธ๋ผ์ฐ์ ์์ ๋๋
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 : ๋น ํธ๋ ์
ฐ์ดํฌ ๋ฌด์
@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์์ ์คํํ ์์๋ ๊ฒฝ์ฐ ์๋ ค์ฃผ์ญ์์ค. ์๋๋ฉด ๋ด ํธ์์ ๋ญ๊ฐ ๋น ์ก๋์? ๊ทํ์ ์๋ต์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
@ 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๋ฅผ ์ฌ์ฉํ ์ ์ด ์์ผ๋ฏ๋ก ๋ ์งง์ ์๋ฃจ์
์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค).
NodeJS ์ค์น (๊ธฐ๋ณธ ์ ์ญ ์ค์น ๊ฒฝ๋ก : % AppData % npm, % AppData % npm-cache)
ํ์ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ๊ณ ๋ค์์ ์คํํฉ๋๋ค.
"% AppData % npmnode_modules \"์๋์ "websockify"๋ผ๋ ํด๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ "websockify \ other \ js"ํด๋์ ๋ด์ฉ์ ๋ณต์ฌํฉ๋๋ค.
์คํ (์ธ์ ๋ฌธ์-> 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๋ ํด๋น ๋ธ๋ก๊ทธ์ ์ค๋ช ๋ ๊ฒ๊ณผ ๊ฐ์ ์ญ๋ฐฉํฅ ์ฐ๊ฒฐ์ ์ง์ํ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@sonicnkt : Node.js ๋ฒ์ ์์ exe๋ฅผ ๋ง๋ค์์ผ๋ฏ๋ก Node.js์ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.
๋ค์์ ๋จ๊ณ์ ๋๋ค (์ด์ ์ Node.js๋ฅผ ์ฌ์ฉํ ์ ์ด ์์ผ๋ฏ๋ก ๋ ์งง์ ์๋ฃจ์ ์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค).
NodeJS ์ค์น (๊ธฐ๋ณธ ์ ์ญ ์ค์น ๊ฒฝ๋ก : % AppData % npm, % AppData % npm-cache)
ํ์ ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํ๊ณ ๋ค์์ ์คํํฉ๋๋ค.
"% AppData % npmnode_modules \"์๋์ "websockify"๋ผ๋ ํด๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ "websockify \ other \ js"ํด๋์ ๋ด์ฉ์ ๋ณต์ฌํฉ๋๋ค.
์คํ (์ธ์ ๋ฌธ์-> https://www.npmjs.com/package/pkg) : pkg "% AppData % npmnode_modules \ websockify \ websockify.js"--targets "latest-win-x86, latest-win-x64 "--out-path"์ถ๋ ฅ ํด๋ "