From 1626e0f8f80c8ffdc334edcb1a44fd86caeee0d6 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Sun, 18 Apr 2010 20:53:54 -0500 Subject: [PATCH] Update README.md and TODO. --- README.md | 42 ++++++++++++++++++++++++++---------------- TODO | 4 +--- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 6ddcde4e..394c799d 100644 --- a/README.md +++ b/README.md @@ -5,28 +5,38 @@ VNC HTML5 Client Description ----------- -An VNC client implemented using HTML5, specifically Canvas and Web Sockets. +An VNC client implemented using HTML5, specifically Canvas and +WebSocket. +For browsers that do not have builtin WebSocket support, the project +includes web-socket-js, a WebSocket emulator using Adobe Flash +(http://github.com/gimite/web-socket-js). Requirements ------------ -* A browser that supports Web Sockets (mostly Chrome as of Apr 6, 2010) - and Canvas (most browsers) +Until there is VNC server support for WebSocket connections, you need +to use a WebSocket to TCP socket proxy. There is a python proxy +included ('wsproxy'). -* Until VNC server support web sockets, you need to use a Web Sockets to - normal socket proxy. There are a couple reasons for this: +There a few reasons why a proxy is required: - 1. Web Sockets is not a pure socket protocol. There is an initial HTTP - like handshake to allow easy hand-off by web servers and allow some - origin policy exchange. Also, each Web Sockets frame begins with - 0 ('\x00') and ends with 255 ('\xff'). + 1. WebSocket is not a pure socket protocol. There is an initial HTTP + like handshake to allow easy hand-off by web servers and allow + some origin policy exchange. Also, each WebSocket frame begins + with 0 ('\x00') and ends with 255 ('\xff'). 2. Javascript itself does not have the ability to handle pure byte - strings (Unicode encoding messes with it) even though you can read - them with Web Sockets. The python proxy base64 encodes the data so - that the Javascript client can base64 decode the data into an array. + strings (Unicode encoding messes with it) even though you can + read them with WebSocket. The python proxy encodes the data so + that the Javascript client can base64 decode the data into an + array. The client requests this encoding + + 3. When using the web-socket-js as a fallback, WebSocket 'onmessage' + events may arrive out of order. In order to compensate for this + the client asks the proxy (using the initial query string) to add + sequence numbers to each packet. Usage @@ -34,7 +44,7 @@ Usage * run a VNC server. - `Xvnc :1` + `vncserver :1` * run the python proxy: @@ -52,7 +62,7 @@ Usage * Point your web browser at http://localhost:8080/vnc.html (or whatever port you used above to run the web server). -* Provide the host and port where the proxy is running and the password - that the vnc server is using (if any). - +* Provide the host and port where the proxy is running and the + password that the vnc server is using (if any). Hit the Connect + button and enjoy! diff --git a/TODO b/TODO index b2774a4e..d72e028e 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,8 @@ -- Make packet sequence number optional based on WebSockets 'path'. - - Add WSS/https/SSL support to page and wsproxy.py - Make C version of wsproxy.py -- Implement UI option for shared. +- Implement UI option for VNC shared mode. - Upgrade to protocol 3.8 - implement ZRLE encoding