The imgQ code in RFB should be a generic rendering queue system in Display. The reason for the render queue in the first place is that images loaded from raw data URI strings aren't immediately ready to display so we have to wait for them to complete 'loading'. However, when data URI images are mixed with other types of rendering actions then things can get out of order. This is the reason for the rendering queue. Currently this only keeps display actions for tight and tightPNG related actions in order (because they use a mix of fills, raw pixel data and data URI images). |
||
---|---|---|
debian | ||
docs | ||
images | ||
include | ||
tests | ||
utils | ||
.gitignore | ||
LICENSE.txt | ||
README.md | ||
favicon.ico | ||
vnc.html | ||
vnc_auto.html |
README.md
noVNC: HTML5 VNC Client
Description
noVNC is a HTML5 VNC client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android).
Notable commits, announcements and news are posted to @noVNC
There are many companies/projects that have integrated noVNC into their products including: Ganeti Web Manager, Archipel, openQRM, OpenNode, OpenStack, Broadway (HTML5 GDK/GTK+ backend), OpenNebula, CloudSigma, Zentyal (formerly eBox), SlapOS, Intel MeshCentral, Amahi, Brightbox, Foreman and LibVNCServer. See this wiki page for more info and links.
Features
- Supports all modern browsers including mobile (iOS, Android)
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG
- WebSocket SSL/TLS encryption (i.e. "wss://") support
- 24-bit true color and 8 bit colour mapped
- Supports desktop resize notification/pseudo-encoding
- Local or remote cursor
- Clipboard copy/paste
- Clipping or scolling modes for large remote screens
- Easy site integration and theming (3 example themes included)
- Licensed under the LGPLv3
Screenshots
Running in Chrome before and after connecting:
See more screenshots here.
Browser Requirements
-
HTML5 Canvas (with createImageData): Chrome, Firefox 3.6+, iOS Safari, Opera 11+, Internet Explorer 9+, etc.
-
HTML5 WebSockets: For browsers that do not have builtin WebSockets support, the project includes web-socket-js, a WebSockets emulator using Adobe Flash. iOS 4.2+ has built-in WebSocket support.
-
Fast Javascript Engine: this is not strictly a requirement, but without a fast Javascript engine, noVNC might be painfully slow.
-
I maintain a more detailed browser compatibility list here.
Server Requirements
Unless you are using a VNC server with support for WebSockets connections (such as x11vnc/libvncserver), you need to use a WebSockets to TCP socket proxy. There is a python proxy included ('websockify').
Quick Start
-
Use the launch script to start a mini-webserver and the WebSockets proxy (websockify). The
--vnc
option is used to specify the location of a running VNC server:./utils/launch.sh --vnc localhost:5901
-
Point your browser to the cut-and-paste URL that is output by the launch script. Enter a password if the VNC server has one configured. Hit the Connect button and enjoy!
Other Pages
-
Encrypted Connections. How to setup websockify so that you can use encrypted connections from noVNC.
-
Advanced Usage. Starting a VNC server, advanced websockify usage, etc.
-
Integrating noVNC into existing projects.
-
Troubleshooting noVNC problems.
Authors/Contributors
-
noVNC : Joel Martin (github.com/kanaka)
- New UI and Icons : Chris Gordon
- Original Logo : Michael Sersen
- tight encoding : Michael Tinglof (Mercuri.ca)
-
Included libraries:
- web-socket-js : Hiroshi Ichikawa (github.com/gimite/web-socket-js)
- as3crypto : Henri Torgemane (code.google.com/p/as3crypto)
- base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
- jsunzip : Erik Moller (github.com/operasoftware/jsunzip),
- tinflate : Joergen Ibsen (ibsensoftware.com)
- DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)