Add documentation for integrating noVNC

This commit is contained in:
Pierre Ossman 2017-12-08 16:25:41 +01:00
parent 84f1f7c847
commit 91e811f7af
3 changed files with 127 additions and 0 deletions

View File

@ -104,6 +104,15 @@ proxy.
configured, and enjoy! configured, and enjoy!
### Integration and Deployment
Please see our other documents for how to integrate noVNC in your own software,
or deploying the noVNC application in production environments:
* [Embedding](docs/EMBEDDING.md) - For the noVNC application
* [Library](docs/LIBRARY.md) - For the noVNC JavaScript library
### Authors/Contributors ### Authors/Contributors
* Core team: * Core team:

83
docs/EMBEDDING.md Normal file
View File

@ -0,0 +1,83 @@
# Embedding and Deploying noVNC Application
This document describes how to embed and deploy the noVNC application, which
includes settings and a full user interface. If you are looking for
documentation on how to use the core noVNC library in your own application,
then please see our [library documentation](LIBRARY.md).
## Files
The noVNC application consists of the following files and directories:
* `vnc.html` - The main page for the application and where users should go. It
is possible to rename this file.
* `app/` - Support files for the application. Contains code, images, styles and
translations.
* `core/` - The core noVNC library.
* `vendor/` - Third party support libraries used by the application and the
core library.
The most basic deployment consists of simply serving these files from a web
server and setting up a WebSocket proxy to the VNC server.
## Parameters
The noVNC application can be controlled by including certain settings in the
query string. Currently the following options are available:
* `autoconnect` - Automatically connect as soon as the page has finished
loading.
* `reconnect` - If noVNC should automatically reconnect if the connection is
dropped.
* `reconnect_delay` - How long to wait in milliseconds before attempting to
reconnect.
* `host` - The WebSocket host to connect to.
* `port` - The WebSocket port to connect to.
* `encrypt` - If TLS should be used for the WebSocket connection.
* `path` - The WebSocket path to use.
* `password` - The password sent to the server, if required.
* `repeaterID` - The repeater ID to use if a VNC repeater is detected.
* `shared` - If other VNC clients should be disconnected when noVNC connects.
* `bell` - If the keyboard bell should be enabled or not.
* `view_only` - If the remote session should be in non-interactive mode.
* `view_clip` - If the remote session should be clipped or use scrollbars if
it cannot fit in the browser.
* `resize` - How to resize the remote session if it is not the same size as
the browser window. Can be one of `off`, `scale` and `remote`.
* `logging` - The console log level. Can be one of `error`, `warn`, `info` or
`debug`.
## Pre-conversion of Modules
noVNC is written using ECMAScript 6 modules. Many of the major browsers support
these modules natively, but not all. By default the noVNC application includes
a script that can convert these modules to an older format as they are being
loaded. However this process can be slow and severely increases the load time
for the application.
It is possible to perform this conversion ahead of time, avoiding the extra
load times. To do this please follow these steps:
1. Install Node.js
2. Run `npm install` in the noVNC directory
3. Run `./utils/use_require.js --with-app --as commonjs`
This will produce a `build/` directory that includes everything needed to run
the noVNC application.

35
docs/LIBRARY.md Normal file
View File

@ -0,0 +1,35 @@
# Using the noVNC JavaScript library
This document describes how to make use of the noVNC JavaScript library for
integration in your own VNC client application. If you wish to embed the more
complete noVNC application with its included user interface then please see
our [embedding documentation](EMBEDDING.md).
## API
The API of noVNC consists of a single object called `RFB`. The formal
documentation for that object can be found in our [API documentation](API.md).
## Example
noVNC includes a small example application called `vnc_lite.html`. This does
not make use of all the features of noVNC, but is a good start to see how to
do things.
## Conversion of Modules
noVNC is written using ECMAScript 6 modules. Many of the major browsers support
these modules natively, but not all. They are also not supported by Node.js. To
use noVNC in these places the library must first be converted.
Fortunately noVNC includes a script to handle this conversion. Please follow
the following steps:
1. Install Node.js
2. Run `npm install` in the noVNC directory
3. Run `./utils/use_require.js --as <module format>`
Several module formats are available. Please run
`./utils/use_require.js --help` to see them all.
The result of the conversion is available in the `lib/` directory.