VNC client on 200 lines of JavaScript | Minko Gechev's blog
This tutorial demonstrates building a lightweight VNC client using Node.js as a proxy server and HTML5/JavaScript for the browser interface, since browsers lack direct TCP socket support for connecting to VNC servers. The proxy server uses the rfb2 module to communicate with a VNC server, captures screen updates as PNG-encoded frames, and transmits them via Socket.io to a browser client that renders them on an HTML5 canvas while relaying mouse and keyboard input back through the same Socket.io connection.