VNC Web Client implemented using HTML5 (Web Sockets, Canvas) In order to use the client you need to use the python proxy. There are a couple reasons for this: - 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'). - 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. The python proxy is run like this: ./wsproxy.py You then point the client at the listen_port on the host where the wsproxy.py command is running.