VNC client web application
Go to file
Alon Bar-Lev 095b752c8e websocket: use python logging module
WebSocketServer is a library module, as such, it cannot assume it can
write output to process stdout.

Python logging module is designed in order to allow subscribers to
handle the output out of modules. It is simple and generic mechanism to
separate between data producer and data handling.

Python logging API also has the nature of log level, so the verbose
parameter can probably be obsoleted in favor of logging level. And of
course the logging API has built in support for exception tracebacks, no
need for manual format.

The msg and vmsg were left for backward compatibility and to keep the
prefix of message, need to consider to drop these in favor of extra
parameter of python logging API.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
2013-06-01 01:38:47 +03:00
debian Remove references to wsproxy. 2013-04-15 12:22:34 -05:00
docs Remove references to wsproxy. 2013-04-15 12:22:34 -05:00
images Formatting. Image renames/cleanup. 2011-09-29 09:32:09 -05:00
include Re-fix pull req #245: 2013-04-25 09:07:09 +02:00
tests Add binary/base64 data mode to perf/playback tests. 2012-10-17 11:58:13 -05:00
utils websocket: use python logging module 2013-06-01 01:38:47 +03:00
.gitignore Remove references to wsproxy. 2013-04-15 12:22:34 -05:00
.gitmodules Add gimite/web-socket-js submodule for DFSG compliance. 2013-04-12 08:21:33 -05:00
LICENSE.txt Change noVNC license to from LGPLv3 to MPL 2.0 2012-10-15 13:35:00 -05:00
README.md Change noVNC license to from LGPLv3 to MPL 2.0 2012-10-15 13:35:00 -05:00
favicon.ico Add logo, favicon. 2011-02-03 11:04:32 -06:00
vnc.html Move over comment about URL connect parameters from vnc_auto.html. 2013-04-05 09:29:08 +02:00
vnc_auto.html Detect port properly in vnc_auto.html when used on port 80 or 443. 2013-04-13 18:45:56 +10:00

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).

More than 16 companies/projects have integrated noVNC into their products including Ganeti Web Manager, OpenStack, and OpenNebula. See the Projects and Companies wiki page for more complete list.

News/help/contact

Notable commits, announcements and news are posted to @noVNC

If you are a noVNC developer/integrator/user (or want to be) please join the noVNC discussion group

Bugs and feature requests can be submitted via github issues. If you are looking for a place to start contributing to noVNC, a good place to start would be the issues that I have marked as "patchwelcome".

If you want to show appreciation for noVNC you could buy something off my Amazon wishlist or you could donate to a great non-profits such as: Compassion International, SIL, Habitat for Humanity, Electronic Frontier Foundation, Against Malaria Foundation, Nothing But Nets, etc.

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 MPL 2.0

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 or PocketVNC), 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

Authors/Contributors

  • noVNC : Joel Martin (github.com/kanaka)

    • 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)