This directory contains JavaScript sample programs for various Ice components. These examples are provided to get you started on using a particular Ice feature or coding technique.
The following subdirectories contain sample programs:
-
Glacier2 is a simpler chat client that uses the Glacier2 service.
-
Ice has several examples that illustrate fundamental Ice concepts.
Refer to the C++ demos for more examples that use Ice services such as IceGrid and IceStorm.
The JavaScript sample programs require an installation of Node.js.
With Node.js in your PATH, go to this directory (ice-demos/js) and run the following command to install several dependencies:
npm install
This command builds the Slice-to-JavaScript compiler (slice2js
) from
source and requires a supported C++ compiler.
Now use gulp to build the demos:
npm run gulp:build
Ice provides only client demos in JavaScript since Ice for JavaScript does not support full server-side activities. In order to run a sample client, you must first start its corresponding server from another Ice language mapping. For example, start the C++ "hello" server:
> cd cpp/Ice/hello
> server
To run the client, open another terminal window, change to the corresponding JavaScript demo directory, and run:
> cd js/Ice/hello
> node Client
Ice provides only client demos in JavaScript since Ice for JavaScript does not support full server-side activities. The browser clients require an HTTP server that supports WebSocket connections. For your convenience, this distribution includes a Node.js HTTP server pre-configured for the demos. Open another terminal window and run:
$ npm run gulp:watch
This will load http://127.0.0.1:8080/index.html in the default browser. From this page you can select the client that you want to run.
Next, start the corresponding server from another Ice language mapping. Open a terminal window, change to the desired server directory, and start the server. The client page provides a README link which might include additional instructions for running the server; please refer to the README of each client before starting the server.
To try a different client, terminate the server that you started earlier, change to the new server directory and start the new server.
To use WSS on iOS and Android it may be required (depending on browser and platform) that the server certificate's common name matches the computer hosting the demos, and that the demo certificate authority be installed on your device.
First you'll need to generate new certificates to match the IP address or DNS name of the computer hosting the demos:
> certs/makedemocerts.py --ip [IP address] --dns [DNS name] [--use-dns]
The option --use-dns
specifies to use the DNS name instead of the IP address
for the certificate common name. You can use either the IP address or DNS name
for the common name, the only requirement is that it matches the value used to
connect to the server.
Next you must install the certificate authority on your device. The simplest way
is to email the CA certificate (certs/cacert.pem
) to yourself and then follow
the instructions below to install the certificate on your device.
Once installed, you connect to the server using the same IP address or DNS name used to create the certificates.
Open the certificate (cacert.pem
) from the device's email client. You
will be prompted to create a configuration profile containing this certificate.
Download the certificate (cacert.pem
) to the device from an email client.
Next go to Settings -> Security -> Install from storage, and choose
cacert.pem
. Enter a name and press OK.