noVNC, HTML5-based VNC client
noVNC is a VNC client implemented using HTML 5 technologies, specifically Canvas and WebSockets (“wss://’ supports encryption). noVNC is licensed under the LGPLv3.
Browser requirements for noVNC
- HTML5 Canvas: Most browsers have had a lot of development in this regard for quite some time. The last one to join has been Internet Explorer 9 (finally).
- HTML5 WebSockets: For browsers that have not incorporated WebSockets support, the project includes web-socket-js, a WebSockets emulator with Adobe Flash.
- Fast JavaScript engine: noVNC avoids the use of new Javascript functionality so it will run in older browsers, but decoding has to decode in Javascript, so on a non-optimized engine this means noVNC is painfully slow.
Server requirements for noVNC
Unless you are using a VNC server with support for WebSockets connections (LibVNCServer), you need to use a TCP WebSockets socket proxy server. An advantage of using the proxy is that it has built-in support for SSL/TLS encryption (i.e. “wss://”).
I leave you a video of its operation: