Giter Club home page Giter Club logo

novnc's Issues

websockify has a zombie problem

There doesn't appear to be anything in the python version of websockify that reaps zombie processes. Certainly it leaves a load in the process list when I run it up on Ubuntu.

It looks like the SIGCHLD signal has to be ignored completely:

signal.signal(signal.SIGCHLD, signal.SIG_IGN)

or there needs to be a reap loop in the do_SIGCHLD procedure using something like:

os.waitpid(-1, os.WNOHANG)

to replicate what the ignore does automatically.

HTH

NeilW

Having trouble connecting

Hello,
I'm having trouble connecting with your VNC client.
I am using tightvncserver. I have noVNC and it's dependencies installed. I am using dyndns to map the hostname lajik.dyndns.org:5956 to my machine. I am running Ubuntu 10.10 and attempting to log in with the latest Trunk of Minefield. I hope this would be all the info, please let me know if you need additional information. Thanks!

Here is the Console output...


sudo /home/msersen/Dropbox/Apps/kanaka-noVNC-bf5ee68/utils/launch.sh  --vnc LDPW:4 --web 5955 --proxy 5956
[sudo] password for msersen: 
Starting webserver on port 5955
Started webserver (pid: 10409)
Starting WebSockets proxy on port 5956
Waiting for connections on :5956
Started WebSockets proxy (pid: 10412)


Navigate to to this URL:

    http://LDPW:5955/vnc.html?host=LDPW&port=5956

Press Ctrl-C to exit


lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /vnc.html?logging=debug HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/plain.css HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/vnc.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/ui.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/black.css HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/util.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/webutil.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/base64.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/des.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/canvas.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/rfb.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/web-socket-js/swfobject.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/web-socket-js/FABridge.js HTTP/1.1" 200 -
lajik.dyndns.org - - [04/Jan/2011 12:33:00] "GET /include/web-socket-js/web_socket.js HTTP/1.1" 200 -
  1: got client connection from 192.168.1.16
  1: forking handler process
  1: Sending flash policy response
  1: No connection after handshake
  2: got client connection from 192.168.1.16
  2: forking handler process
  2: using plain (not SSL) socket
  2: using protocol version 76
  2: connecting to: LDPW:4
  2: handler exception: [Errno 111] Connection refused
  3: got client connection from 192.168.1.16
  3: forking handler process
  3: handler exception: [Errno 336265218] _ssl.c:339: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib
  4: got client connection from 192.168.1.16
  4: forking handler process
  4: handler exception: [Errno 336265218] _ssl.c:339: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib
  5: got client connection from 192.168.1.16
  5: forking handler process
  5: handler exception: [Errno 336265218] _ssl.c:339: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib
**********************************************************************************
and here is the FireBug debug output...
**************************************************************************************
">> RFB.init_ws"
"connecting to wss://LDPW:5956/"
"<< RFB.init_ws"
">> WebSocket.onclose"
"New state 'failed', was 'connect'. Msg: Server disconnected"
"Clearing connect timer"
"<< WebSocket.onclose"
"New state 'failed', was 'failed'."
"New state 'connect', was 'failed'."
">> RFB.init_ws"
"connecting to wss://LDPW:5956/"
"<< RFB.init_ws"
">> WebSocket.onclose"
"New state 'failed', was 'connect'. Msg: Server disconnected"
"Clearing connect timer"
"<< WebSocket.onclose"
"New state 'failed', was 'failed'."

Tight PNG ?

Hello,

At first congratulate Kanaka for his work on novnc !

I'd like to run novnc with the encoder "tightpng", however, i can't find VNC server on windows with this encoder...

Do you know a VNC server (windows) with A "tightPNG encoder" ?

Thanks.

Missing data_multi.js file?

In trying to run the vnc_perf.html file, it complains of not being able to find data_multi.js. I've looked around and I can't find any such file. I can't find anything else that would provide things like VNC_frame_data_multi[]. Did this file not make it into the commit for vnc_perf.html?

fail to connect to qemu using tightPNG (illegal basic compression)

fail to connect to qemu
Hi, I tried to connect to the vnc server of qemu like:
./qemu -boot d -cdrom ~/windowsXP.iso -m 100M -vnc :5
run noVNC like:
./utils/launch.sh --vnc 127.0.0.1:5905
browse the web:
http://ubuntu:6080/vnc.html?host=ubuntu&port=6081
But got the following error message:
"Illegal basic compression received, ctl: 80"

In fact, the problem isn't quite stable when using firefox, sometimes it will be stuck at
"Authentication OK"
OR
"Sent ProtocolVersion: 003.008"
When using Chrome, the result is always "Illegal basic compression received, ctl: 80"

Environment:
Ubuntu 10.10
firefox 3.6.13
chrome 8.0.552.224
qemu 0.13.0

p.s. Connecting to qemu works fine when using Vinagre

Thank you!

Certain data receive patterns cause rendering to fall behind

Certain patterns of data sent from a VNC server can cause noVNC to fall-behind (and if it falls too far behind the browser can hang).

The problem happens when noVNC receives a combination of partial framebufferUpdates and multiple framebufferUpdates in rapid succession.

The bug is that noVNC is never processing more than one framebufferUpdate message per onmessage event. If noVNC receives an incomplete framebufferUpdate and then receives the rest of the framebufferUpdate plus another complete framebufferUpdate, then it will fall permanently behind.

Unrecognized RFB version using TigerVNC

Playing around with noVNC i'm not able to connect to TigerVNC, giving the following error :

"reading version failed: not an RFB client?"

Using Xvnc TigerVNC 1.0.1 - built Mar 25 2010 18:01:18

Problem with Safari

On Safari (4.0.5) on Snow Leopard

The connection succeeds for a few seconds. Performing any kind of interaction within the VNC session causes the following output on the client console.

This problem occurs in both encrypted (wss://) and non-encrypted (ws://) connections.

">> connect"
"RFB.host: 10.5.5.1"
">> init_ws"
"connecting to wss://10.5.5.1:10000/?b64encode&seq_num"
"[WebSocket] scheme: wss"
"<< init_ws"
"New state 'ProtocolVersion'."
"<< connect"
"[WebSocket] starting SSL/TLS"
">> WebSocket.onopen"
"New state 'ProtocolVersion'. Msg: Starting VNC handshake"
"<< WebSocket.onopen"
">> init_msg"
"RQ (12) 82,70,66,32,48,48,51,46,48,48,56,10"
"Server ProtocolVersion: RFB 003.008"
"New state 'Security'. Msg: Sent ProtocolVersion: RFB 003.008"
"<< init_msg"
">> init_msg"
"RQ (2) 1,1"
"New state 'Authentication'. Msg: Authenticating using scheme: 1"
"Security auth scheme: 1"
"New state 'SecurityResult'."
"<< init_msg"
">> init_msg"
"RQ (4) 0,0,0,0"
"New state 'ServerInitialisation'. Msg: Authentication OK"
"<< init_msg"
">> init_msg"
"RQ (67) 2,208,1,144,32,24,0,1,0,255,0,255,0,255,16,8,0,0,0,0,0,0,0,43,81,69,77,85,32,40,50,54,99,99,55,56,54,99,45,53,101,99,48,45,49,49,100,102,45,57,56,50,50,45,53,52,48,48,48,49,48,53,52,101,97,57,41"
"Screen size: 720x400"
"bpp: 32"
"depth: 24"
"big_endian: 0"
"true_color: 1"
">> init_canvas"
"<< init_canvas"
">> setPixelFormat"
"<< setPixelFormat"
">> setEncodings"
"<< setEncodings"
"New state 'normal'. Msg: Connected to: QEMU (26cc786c-5ec0-11df-9822-540001054ea9)"
"<< init_msg"
"sequence number mismatch RQ_seq_num:4, seq_num:6"
"Searching reorder list item 0, seq_num 8"
"Searching reorder list item 1, seq_num 13"
"Searching reorder list item 2, seq_num 14"
"Searching reorder list item 3, seq_num 23"
"Searching reorder list item 4, seq_num 24"
"Searching reorder list item 5, seq_num 16"
"Searching reorder list item 6, seq_num 17"
"Searching reorder list item 7, seq_num 18"
"Searching reorder list item 8, seq_num 6"
"New state 'failed'. Msg: Disconnected: illegal server message type undefined"
"RQ.slice(0,30):"
"sequence number mismatch RQ_seq_num:4, seq_num:7"
"Searching reorder list item 0, seq_num 8"
"Searching reorder list item 1, seq_num 13"
"Searching reorder list item 2, seq_num 14"
"Searching reorder list item 3, seq_num 23"
"Searching reorder list item 4, seq_num 24"
"Searching reorder list item 5, seq_num 16"
"Searching reorder list item 6, seq_num 17"
"Searching reorder list item 7, seq_num 18"
"Searching reorder list item 8, seq_num 6"
"Searching reorder list item 9, seq_num 7"
"Giving up!"
">> disconnect"
"New state 'closed'."
">> WebSocket.onclose"
"New state 'disconnected'. Msg: VNC disconnected"
"<< WebSocket.onclose"
"New state 'disconnected'. Msg: Disconnected"
"<< disconnect"

WebSockets support in QEMU

I've red on an interview that you are working with QEMU team to make it support your client. Do you have any information about the progress of this ?

At this time I have to build a proxy for each virtual machine so each VM needs to port, it's VNC port and its VNC proxy port. I'd like to remove this :)

Recent Webkit canvas rendering is buggy (i.e. chrome-59647)

I've noticed that using browser embeding some last release of webkit make noVNC to be incredibly slow, display is not refreshed, cursor have some trace, everything seems to be updated at state it was a t-1 etc..

I've tried with Chromium (last build) and Webkit (Safari Nightlies) and the result is the same.

It is mostly a bug in Webkit, but maybe not. I prefer to report it just in case

Protocol mismatch base64 != sample

Using the version from the public git repo and a current chromium-browser, i can't get a successfull connection.

The javascript debug output is:

RFB.constructor
util.js:69>> Display.constructor
util.js:69User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/11.04 Chromium/11.0.696.57 Chrome/11.0.696.57 Safari/534.24
util.js:69Browser: webkit 534.24
util.js:70Canvas supports imageData
util.js:70Using Canvas createImageData
util.js:70Prefering javascript operations
util.js:70Data URI scheme cursor supported
util.js:69<< Display.constructor
util.js:70Using native WebSockets
util.js:71New state 'loaded', was 'disconnected'. Msg: noVNC ready: native WebSockets, createImageData rendering
util.js:69<< RFB.constructor
util.js:71New state 'connect', was 'loaded'.
util.js:69>> RFB.connect
util.js:70connecting to ws://planetx:6080/
util.js:69<< RFB.connect
:6080Error during WebSocket handshake: protocol mismatch: base64 != sample
util.js:69>> WebSock.onclose
util.js:72New state 'failed', was 'connect'. Msg: Server disconnected
util.js:69Clearing connect timer
util.js:69<< WebSock.onclose
util.js:71New state 'failed', was 'failed'.

Output of the /utils/launch.sh is:

16: 127.0.0.1: Plain non-SSL (ws://) WebSocket connection (version 76)
16: connecting to: localhost:5900
16: 127.0.0.1: Client closed

This should be the relevant TCP/HTTP connection (captured with wireshark & "follow TCP stream"):

GET / HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: planetx:6080
Origin: http://planetx:6080
Sec-WebSocket-Protocol: base64
Sec-WebSocket-Key1: {3?9R(F345 0MH00[12DC
Sec-WebSocket-Key2: 3 V1F9MZ60E795wb5
2
Cookie: logging=debug; stylesheet=default; host=planetx; port=6080; password=; encrypt=false; true_color=true; cursor=false; shared=true; connectTimeout=2

.7...Xj,HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Origin: http://planetx:6080
Sec-WebSocket-Location: ws://planetx:6080/
Sec-WebSocket-Protocol: sample

Hf4..mR...L.W&i.

Return codes without -f

It looks as if error codes are not returned correctly when not using -f.

Console log:

[root@brawndo include]# ps -ef | grep ws
root 2302 15791 0 20:41 pts/1 00:00:00 grep ws
[root@brawndo include]# /var/www/html//noVNC/utils/wsproxy.py 4951 localhost:59510
[root@brawndo include]# echo $?
0
[root@brawndo include]# ps -ef | grep ws
root 2307 1 0 20:42 ? 00:00:00 /usr/local/bin/python /var/www/html//noVNC/utils/wsproxy.py 4951 localhost:59510
root 2309 15791 0 20:42 pts/1 00:00:00 grep ws
[root@brawndo include]# /var/www/html//noVNC/utils/wsproxy.py 4951 localhost:59510
[root@brawndo include]# echo $?
0
[root@brawndo include]# ps -ef | grep ws
root 2307 1 0 20:42 ? 00:00:00 /usr/local/bin/python /var/www/html//noVNC/utils/wsproxy.py 4951 localhost:59510
root 2317 15791 0 20:42 pts/1 00:00:00 grep ws
[root@brawndo include]# /var/www/html//noVNC/utils/wsproxy.py -f 4951 localhost:59510
Traceback (most recent call last):
File "/var/www/html//noVNC/utils/wsproxy.py", line 160, in
start_server()
File "/var/www/html/noVNC/utils/websocket.py", line 194, in start_server
lsock.bind((settings['listen_host'], settings['listen_port']))
File "/usr/local/lib/python2.7/socket.py", line 222, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
[root@brawndo include]# echo $?
1

Ruby proxy

Hey,

Interesting project. I've been looking for a web based VNC viewer to integrate into vboxweb_rb (http://github.com/KieranP/vboxweb_rb).

Any change of getting a ruby proxy for Ruby on Rails (or other framework) based websites?

Regards
Kieran

Keyboard events bubble to browser in Opera 10.60

Opera has some oddities around keyboard event handling. One is that events aren't being stopped from bubbling up to the browser. I.e. hitting backspace causes the browser to go back, hitting '-' zooms out, etc.

Consider encodings using zlib (zlib, tight, ZRLE)

Standard tight encoding and ZRLE will require zlib decompression in Javascript. This will probably be pretty slow (based on some initial testing), but having them as (non-default) options might be worthwhile in some cases.

Doesn't seem to like jquery

if I try to use jquery on the same page I get an error in the js console:

:4567/include/util.js:72Canvas exception: no getContext method
:4567/include/util.js:72New state 'fatal', was 'disconnected'. Msg: No working Canvas
:4567/include/ui.js:355Uncaught TypeError: Object # has no method 'setAttribute'
UI.updateState:4567/include/ui.js:355
RFB.updateState:4567/include/rfb.js:520
constructor:4567/include/rfb.js:246
RFB:4567/include/rfb.js:1623
UI.load:4567/include/ui.js:137
(anonymous function):4567/js/application.js:11
c.extend.ready:4567/js/jquery.js:26
L

ssl module missing for web.py and wsproxy.py on python2.5 and older

I'm trying to launch it on an old ubuntu:

$ cat /etc/issue
Ubuntu 8.10 \n \l

$ python --version
Python 2.5.2

$ ./utils/launch.sh --vnc localhost:5901
Traceback (most recent call last):
File "/home/eric/noVNC/utils/web.py", line 13, in
import ssl
ImportError: No module named ssl
Failed to start webserver

Maybe you could use python-openssl when ssl support is not available?

Fail to connect with Opera 10.60 (Xtightvnc 1.3.9, Python 2.6.5)

Hi all.
This project looks cool, but it don't work for me. I am using Xtightvnc 1.3.9, Python 2.6.5, Opera 10.60.

Xtightvnc log:
19/06/10 15:22:27 rfbProcessClientProtocolVersion: client gone
19/06/10 15:22:27 Client 192.168.0.200 gone
19/06/10 15:22:27 Statistics:
19/06/10 15:22:27 framebuffer updates 0, rectangles 0, bytes 0

19/06/10 15:22:52 Got connection from client 192.168.0.200
19/06/10 15:22:52 (other clients 127.0.0.1)

wsproxy.py:

waiting for connection on port 8787

Got client connection from 127.0.0.1
using plain (not SSL) socket
b64encode=True
seq_num=True
Connecting to: localhost:5900

Traffic Legend:
} - Client receive
}. - Client receive partial
{ - Target receive

>  - Target send
>. - Target send partial
<  - Client send
<. - Client send partial

{<

When I add --record parameter, it make file with this content:
'>0:UkZCIDAwMy4wMDgK',

In browser is text "Starting VNC handshake" and nothing change anymore...

RFB 3.3 connection failure

NoVNC stops with message "Authenticating using scheme: 1" when try to connect to a vnc server with RFB 3.3 protocol without password.

Other information:

Browser: Chrome 7, Firefox 4 beta
VNC server: vncserver (without password)
NoVNC: encrypt on
Logs (debug mode):
New state 'disconnect', was 'normal'. Msg: Disconnecting
:6080/include/util.js:71New state 'disconnected', was 'disconnect'. Msg: VNC disconnected
:6080/include/util.js:71New state 'connect', was 'disconnected'.
:6080/include/util.js:71New state 'ProtocolVersion', was 'connect'. Msg: Starting VNC handshake
:6080/include/util.js:71New state 'Security', was 'ProtocolVersion'. Msg: Sent ProtocolVersion: 003.003
:6080/include/util.js:71New state 'Authentication', was 'Security'. Msg: Authenticating using scheme: 1
:6080/include/util.js:71New state 'SecurityResult', was 'Authentication'.

Add support for VMWare extensions to RFB/VNC

VMWare implements some extensions to the protocol that would be interesting to support in noVNC. I'm unlikely to personally get around to this (and don't have access to a ESX server) but somebody might be interested in doing this.

Some relevant links:

http://mail.gnome.org/archives/gtk-vnc-list/2008-January/msg00005.html
http://wiki.multimedia.cx/index.php?title=VMware_Video
http://bluebear.org/projects/kodiak/repository/revisions/master/entry/src/com/bluebear/rfb/vnc.h

Single port binding

In the situation of having multiple vnc servers listening each to a different port (5900, 5901, ..., 5910) I'm wondering if it "woul"d be possible to tell noVNC to connect to a single port (wsproxy) like 80 or 443 (SSL) and redirect all communication to the right port ?
Something like a parameter ('connect', 'host:port').

That would be awesome !

Middle button issues in Opera

In Opera 11 the middle button is not suppressed and results in the default browser action (loading a new tab at the contents of the paste buffer).

Of lesser concern, in Opera 10.60 the middle mouse button gets stuck. Probably the button up event is not being caught (or not firing).

can't handle servers that support multiple security mechanisms

the built-in ubuntu VNC server supports types 18,1 or 18,2 for security and your vnc.js code only looks at the first type (which in this case is 18, even though it will support 1 or 2 (depending on if a password is required). A quick fix in vnc.js fixes this but I'm too lazy to get git running, so here's the fix in the issue:

after you have the line:
types = RQ.shiftBytes(num_types);

add the line:
types = types.filter(function(x){if ((x==1) || (x==2)) { return true
; } else { return false;}});

vnc_auto.html not working?!

Hi,

I can make vnc.html work fine, I can even do vnc.html?host=localhost&port=8181, and all I need to do is click connect and it works. However, if I do vnc_auto.html?host=localhost&port=8181, I see a few packets go between the client and the proxy, but the client then times out.

For what it's worth, i'm using my own proxy here, but it works fine with vnc.html.

Is there any obvious way I can try to debug this problem? I can't understand why vnc.html work, but vnc_auto.html doesn't!

Improves on UI

On plain.css:

   body {
     margin: 0px;
     padding: 0px;
   }
   #VNC_controls {
       overflow: hidden;
       white-space: nowrap;
   }
   #VNC_controls li {
       float: left;
       margin-right: 5px;
   }

On ui.js:

//    html += '<div id="VNC_controls">';
//    html += '  <ul>';
//    html += '    <li>Host: <input id="VNC_host"></li>';
//    html += '    <li>Port: <input id="VNC_port"></li>';
//    html += '    <li>Password: <input id="VNC_password"';
//    html += '        type="password"></li>';
//    html += '    <li><input id="VNC_connect_button" type="button"';
//    html += '        value="Loading" disabled></li>';
//    html += '  </ul>';
//    html += '</div>';
    html += '<div id="VNC_screen">';
    html += '  <div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;">';
    html += '    <table border=0 width=100%><tr>';
    html += '      <td><div id="VNC_status">Loading</div></td>';
    html += '      <td width=1%>';
    html += '<div id="VNC_controls">';
    html += '  <ul>';
    html += '    <li><input id="VNC_host" placeholder="host"></li>';
    html += '    <li>:<input id="VNC_port" placeholder="port"></li>';
    html += '    <li><input id="VNC_password" type="password" placeholder="password"></li>';
//    html += '    <li><input id="VNC_connect_button" type="button" class="VNC_status_button"';
//    html += '        value="Loading" disabled></li>';
    html += '  </ul>';
    html += '</div>';
    html += '      </td>';
    html += '      <td width=1%><div class="VNC_buttons_right">';
    html += '         <input id="VNC_connect_button" type="button" class="VNC_status_button" value="Loading" disabled>';
    html += '      </td>';

Scaling ability (was: small patch to handle CSS3 Zoom property of vnc div)

Hi,

By adding the following snippet to RFB.mouseButton and RFB.mouseMove, this allows to get correct mouse coordinate when the main #vnc div is scaled by CSS3 Zoom property :

mouseButton: function(x, y, down, bmask) {
    if (down) {
        RFB.mouse_buttonMask |= bmask;
    } else {
        RFB.mouse_buttonMask ^= bmask;
    }
    if ($(RFB.canvasID).style.zoom) {
        z = parseFloat($(RFB.canvasID).style.zoom) / 100;
        x = x * (1/z);
        y = y * (1/z);
    }
    RFB.mouse_arr = RFB.mouse_arr.concat( RFB.pointerEvent(x, y) );
    RFB.flushClient();
}

... 

mouseMove: function(x, y) {
    //Util.Debug('>> mouseMove ' + x + "," + y);
    if ($(RFB.canvasID).style.zoom)
    {
        z = parseFloat($(RFB.canvasID).style.zoom) / 100;
        x = x * (1/z);
        y = y * (1/z);
    }
    
    RFB.mouse_arr = RFB.mouse_arr.concat( RFB.pointerEvent(x, y) );
}

SSL connection doesn't work with native WebSocket of Safari

It fails to connect using handshake :
Handshake ['\x80|\x01\x03\x01\x00c\x00\x00\x00\x10\x00\x00/\x00\x00\x05\x00\x00\x04\x00\x005\x00\x00\n\x00\x00\t\x00\x00\x03\x00\x00\x08\x00\x00\x06\x00\x002\x00\x003\x00\x008\x00\x009\x00\x00\x16\x00\x00\x15\x00\x00\x14\x00\x00\x13\x00\x00\x12\x00\x00\x11\x00\x004\x00\x00:\x00\x00\x18\x00\x00\x1b\x00\x00\x1a\x00\x00\x17\x00\x00\x19\x00\x00\x01\x01\x00\x80\x02\x00\x80\x03\x00\x80\x04\x00\x80\x06\x00@\x07\x00\xc0\x0f!p\xd8\xf0\xb1u1\xe0|\x01\xca\x9c\xb7sK']

I've also try to check if handshake starts with \x80, but connection fails.

It works great on Chrome. Any idea ?

RDP support

Is this library compatible with VirtualBox's RDP Server? I'm not sure how'd I'd go about checking it, so that's why I'm asking here.

Regards
Kieran

"Invalid server initialization" when connecting to tightvncserver

I am trying to connect to the latest version of tightvncserver (2.0.2 Jul 8 2010) running on a Windows 2000 box. I have started noVNC via the launch.py script you provided. This is the output from the server:

6: got client connection from {myip}
6: forking handler process
6: using plain (not SSL) socket
6: using protocol version 76
6: connecting to: {tightvncserverip}:5903
6: handler exit: Client closed

In tightvncserver, I get the following messages:

[2052] 2010-12-17 07:58:25 @ No console user process id specified (system error: The requested resource is in use (error code 170))
[2052] 2010-12-17 07:58:25 @ The DesktopServerApplication dispatcher has failed with error: Anonymous pipe read() function failed (The pipe has been ended. (109))
[2236] 2010-12-17 07:58:25 @ No console user process id specified (system error: The system cannot find the file specified (error code 2))

I don't know if it makes a difference, but I'm also viewing the tightvncserver machine via RDP at the same time I'm trying to connect to it via noVNC.

Looking at the tightvncserver code, it seems it's dying because m_userProcessToken is equal to zero in the WTS::queryConsoleUserToken function. That's as far as I got with it.

Any ideas? Thanks for the great concept and implementation!

noVNC connect to VNC display fails (python missing .partition() )

Im trying to get VNC display through noVNC proxy but no luck so far. Client browser is Chrome 5.0.375.125 on MacOSX. noVNC web interface loads ok but VNC connect fails. Here are the launch script log and browser javascript console log. Any ideas whats wrong? I can connect to this vnc display with other clients.

./utils/launch.sh --vnc funcman.active.ee:5900
Starting webserver on port 6080
Started webserver (pid: 29974)
Starting WebSockets proxy on port 6081
waiting for connection on port 6081
Started WebSockets proxy (pid: 29977)

Navigate to to this URL:

http://funcman.active.ee:6080/vnc.html?host=funcman.active.ee&port=6081

Press Ctrl-C to exit

192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /vnc.html?host=funcman.active.ee&port=6081&logging=debug HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /include/plain.css HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /include/black.css HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /include/vnc.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /include/default_controls.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:25] "GET /include/util.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:26] "GET /include/base64.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:26] "GET /include/des.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:26] "GET /include/canvas.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:27] "GET /include/rfb.js HTTP/1.1" 200 -
192.168.1.69 - - [04/Aug/2010 20:40:29] code 404, message File not found
192.168.1.69 - - [04/Aug/2010 20:40:29] "GET /favicon.ico HTTP/1.1" 404 -
Got client connection from 192.168.1.69
using plain (not SSL) socket
Ignoring exception:
Traceback (most recent call last):
File "/opt/test/noVNC/utils/websocket.py", line 208, in start_server
csock = do_handshake(startsock)
File "/opt/test/noVNC/utils/websocket.py", line 132, in do_handshake
h = parse_handshake(handshake)
File "/opt/test/noVNC/utils/websocket.py", line 76, in parse_handshake
var, delim, val = line.partition(": ")
AttributeError: 'str' object has no attribute 'partition'

waiting for connection on port 6081

Javascript console:

Canvas.init
:6080/include/util.js:128Canvas supports imageData
:6080/include/util.js:128Using Canvas createImageData
:6080/include/util.js:128Prefering javascript operations
:6080/include/util.js:128Data URI scheme cursor supported
:6080/include/util.js:127<< Canvas.init
:6080/include/util.js:128Using native WebSockets
:6080/include/util.js:129New state 'loaded', was 'disconnected'. Msg: noVNC ready (using native WebSockets)
:6080/include/util.js:129New state 'connect', was 'loaded'.
:6080/include/util.js:128connecting to ws://funcman.active.ee:6081/
:6080/include/util.js:127>> WebSocket.onclose
:6080/include/util.js:129New state 'disconnected', was 'connect'. Msg: VNC disconnected
:6080/include/util.js:127<< WebSocket.onclose

Lack of support for OSX, Ubuntu Lucid built in remote-desktop versions

I know that OSX is a bastardisation of the spec, but i'm unsure about Ubuntu.

Ubuntu reports as "Invalid server version RFB 003.007", which as far as I know should be valid?
I haven't fully grok'd the code yet, so I'm unsure as to whats happening in the cases.

I've started my own implementation of a Canvas VNC client previously using a Ruby backend... there I tried to handle these cases by negotiating a fall back to an earlier version of the protocol, which was my interpretation of the spec.

Great project though - nice to see other people have picked up the same idea but gone further with it.

Running on a Mac

Hello,

I apologize if this is not the right place to submit this, but I've been trying to get noVNC working on my Mac mini for a couple days and would appreciate some help. I've followed the info the readme.md, and have tried it with the native Mac screen sharing (which is the Mac's VNC built-in server), and tried with VineServer; I keep getting 'connect timeout' errors. I added the logging=debug to the URL, but am not able to interpret the results in a useful way. Connect timeout seems straight forward enough, I just don't know why the connection is not happening.

What information am I missing, or should I provide to help troubleshoot this issue?

Thank you.

SteveO

proxying websockets?

Hi,
I am looking for a way to add basic http authentication to noVNC. First I thought I would use a reverse proxy (a la nginx), but then realized it is impossible, because nginx speaks HTTP/1.0, which does not support websockets.

I see I can amend websocket.py (somewhere around SplitHTTPHandler), but I doubt it's the best solution, since websockify is not intending to be a full-fledged web server :)
Any suggestions how I can proxy websockets?
Thanks.

"use strict" + Cappuccino + last version of Gecko = fail

"use strict" seems to force variables to be declared before use.
Cappuccino introduce a file-scoped system (if var toto is declared as is in file it is file-scoped, if it is just toto is global-scoped)

As these two mode are incompatibles, would you mind t remove "use strict" ?

Non-US keyboard layouts

A nice feature for me and all others with non-US keyboards is to add a keyboard layout option list and/or trying to auto detect locale settings from the browser.

Shared mode option

Add config option to enable/disabled shared mode.

Right now the option is just hard-coded to enabled.

Add WebSockets support to stunnel

stunnel does pretty much the same thing as wsproxy, but only for TLS/SSL. It would be very interesting to add WebSockets support.

Disconnected: unsupported security types:

  • virtual machine running XP with TightVNC server (Ubuntu 64-bit + virtualbox).
  • when i click the connect button i get: "Disconnected: unsupported security types:"

Chrome log:
New state 'failed', was 'Security'. Msg: Disconnected: unsupported security types: :6080/include/util.js:130

Anyone?

High CPU usage while refreshing lot of datas

When noVNC displays lot of informations, CPU reach 100%
for example tar -xzvf a_big_tar.tgz on a remote computer displays a lot a lines and navigator (currently Webkit) reach 100% CPU

I'm sure there are some performances improvments by dropping some refresh cycle or something.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.