Chapter 2. Installation

This chapter guides you through the steps to install AMQ JavaScript in your environment.

2.1. Prerequisites

  • You must have a subscription to access AMQ release files and repositories.
  • You must install the npm command line tool in your environment. See the npm website for more information.
  • To use AMQ JavaScript, you must install Node.js in your environment. See the Node.js website for more information.
  • AMQ JavaScript depends on the Node.js debug module. See the debug npm page for installation instructions.

2.2. Using the Red Hat NPM registry

Configure your NPM environment to download the client library from the Red Hat NPM registry.

Procedure

  1. Use the npm config set command to add the Red Hat NPM registry to your environment:

    $ sudo npm config set @redhat:registry https://npm.registry.redhat.com
  2. Use the npm install command to install the client:

    $ sudo npm install -g @redhat/rhea@1.0.24-redhat-00004
Note

The procedure above is for system-wide installations. You can run the commands without sudo and without the -g option to perform local installations.

To configure your environment to use the installed library, add the node_modules/@redhat directory to the NODE_PATH environment variable:

Red Hat Enterprise Linux 7

$ export NODE_PATH=/opt/rh/rh-nodejs14/root/usr/lib/node_modules/@redhat:$NODE_PATH

Red Hat Enterprise Linux 8

$ export NODE_PATH=/usr/local/lib/node_modules/@redhat:$NODE_PATH

Windows

$ set NODE_PATH=%AppData%\Roaming\npm\node_modules\@redhat;%NODE_PATH%

To test your installation, use the following command. It prints OK to the console if it successfully imports the installed library.

$ node -e 'require("rhea")' && echo OK
OK

2.3. Deploying the client in a browser

AMQ JavaScript can run inside a web browser. The NPM package includes a file named rhea.js at the following location that can be used in browser-based applications:

/usr/lib/node_modules/@redhat/rhea/dist/rhea.js

Copy the rhea.js file to a location exposed by your web server and reference it using the HTML <script> element, as in this example:

Example: Running the client in a browser

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
  <script src="rhea.js"></script>
</head>
<body>
  <script>
    const rhea = require("rhea");
    const container = rhea.create_container();

    container.on("message", (event) => {
        console.log(event.message.body);
    });

    const ws = container.websocket_connect(WebSocket);
    const details = ws("ws://example.net:5673", ["binary", "AMQPWSB10", "amqp"])

    const conn = container.connect({"connection_details": details});
    conn.open_receiver("notifications");
  </script>
</body>