Skip to content

Commit

Permalink
Added documentation (moved from Wiki)
Browse files Browse the repository at this point in the history
  • Loading branch information
ppatierno committed Jul 8, 2017
1 parent 91456e3 commit 1e9cfec
Show file tree
Hide file tree
Showing 19 changed files with 154 additions and 0 deletions.
17 changes: 17 additions & 0 deletions doc/AMQP-Endpoint.md
@@ -0,0 +1,17 @@
# AMQP Endpoint

This configuration node is needed by all the other AMQP nodes in order to specify the container (endpoint) to connect (i.e. broker, AMQP server, AMQP router, ...).

The informatio to provide are :

* **_Host_** : hostname or IP address of the container to connect;
* **_Port_** : port of the above container;
* **_Name_** : name used to identify the node inside the Node-RED flow;
* **_Username_** : username for using SASL authentication
* **_Password_** : password for using SASL authentication

![AMQP endpoint node](images/amqp_endpoint_node.png)

As defined by the used Rhea library, the default SASL behaviour is as follows. If the username and password are both specified, PLAIN will be used. If only a username is specified, ANONYMOUS will be used. If neither is specified, no SASl layer will be used.

This configuration node defines the AMQP connection and related session that is used to connect to the remote container. All the other provided nodes can use the same endpoint node in order to have their links living in the same connection.
29 changes: 29 additions & 0 deletions doc/AMQP-Receiver.md
@@ -0,0 +1,29 @@
# AMQP Receiver

![AMQP receiver node toolbox](images/amqp_receiver_node_toolbox.png)

This is node is useful in order to create an AMQP receiver for connecting to an AMQP container (i.e. broker, AMQP server, AMQP router, ...) and start to receive messages.

## Configuration

The configuration allows to specify following parameters :

* **_Endpoint_** : the AMQP endpoint configuration node which specifies the AMQP container to connect with this receiver;
* **_Address_** : the AMQP address as source for this receiver node;
* **_Autoaccept_** : this flag specifies if received messages should be automatically accepted. Defaults to true;
* **_Credit window_** : A 'credit' window controlling the flow of messages over this receiver. Defaults to 100 if not specified. A value of 0 can be used to turn of automatic flow control and manage it directly;
* **_Dynamic_** : this flag specifies a request for dynamic creation of a remote node (see AMQP 1.0 specification for more information);
* **_Sender settle mode_** : it specifies the sender settle mode with following possibile values _unsettled_, _settled_ and _mixed_ as described by the AMQP 1.0 specification;
* **_Receiver settle mode_** : it specifies the receiver settle mode with following possibile values _first_ and _second_ as described by the AMQP 1.0 specification;
* **_Durable_** : it specifies what state of the terminus will be retained durably: the state of durable messages (_unsettled_state_ value), only existence and configuration of the terminus (_configuration_ value), or no state at all (_none_ value);
* **_Expiry policy_** : expiry policy of the source (see AMQP 1.0 specification for more information);
* **_Name_** : name used to identify the node inside the Node-RED flow;

![AMQP receiver node](images/amqp_receiver_node.png)

## Input/Output

This node provides following input and output :

* **_input_** : a "Node-RED" message with _msg.credits = <credits>_ in order to grant credits to the peer for executing manual flow control (when _Credit window_ parameter is set to 0);
* **_output_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the received message. The other field is _msg.delivery = <AMQP delivery>_ with a JSON format containing information about delivery on received message (i.e. "tag");
23 changes: 23 additions & 0 deletions doc/AMQP-Requester.md
@@ -0,0 +1,23 @@
# AMQP Requester

![AMQP requester node toolbox](images/amqp_requester_node_toolbox.png)

This is node is useful in order to create an AMQP requester for connecting to an AMQP container (i.e. broker, AMQP server, AMQP router, ...), sending a request on the specified address and waiting for the response on a dynamically created address (specified in the request "reply-to" property).

## Configuration

The configuration allows to specify following parameters :

* **_Endpoint_** : the AMQP endpoint configuration node which specifies the AMQP container to connect with this requester;
* **_Address_** : the AMQP address as target for this requester node;
* **_Name_** : name used to identify the node inside the Node-RED flow;

![AMQP requester node](images/amqp_requester_node.png)

## Input/Output

This node provides following input and output :

* **_input_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the request to send;
* **_output_1_** : a "Node-RED" message with _msg.delivery = <AMQP delivery>_ with a JSON format containing information about delivery on sent message (i.e. "tag"). The other field is _msg.deliveryStatus = <AMQP delivery status>_ with accepted, rejected, released and modified as possible values;
* **_output_2_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the response message. The other field is _msg.delivery = <AMQP delivery>_ with a JSON format containing information about delivery on received message (i.e. "tag");
22 changes: 22 additions & 0 deletions doc/AMQP-Responder.md
@@ -0,0 +1,22 @@
# AMQP Responder

![AMQP responder node toolbox](images/amqp_responder_node_toolbox.png)

This is node is useful in order to create an AMQP responder for connecting to an AMQP container (i.e. broker, AMQP server, AMQP router, ...), receiving a request on the specified address and then replying on the "reply-to" address specified in the request.

## Configuration

The configuration allows to specify following parameters :

* **_Endpoint_** : the AMQP endpoint configuration node which specifies the AMQP container to connect with this responder;
* **_Address_** : the AMQP address as source for this responder node;
* **_Name_** : name used to identify the node inside the Node-RED flow;

![AMQP responder node](images/amqp_responder_node.png)

## Input/Output

This node provides following input and output :

* **_input_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the response to send;
* **_output_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the received request to reply;
28 changes: 28 additions & 0 deletions doc/AMQP-Sender.md
@@ -0,0 +1,28 @@
# AMQP Sender

![AMQP sender node toolbox](images/amqp_sender_node_toolbox.png)

This is node is useful in order to create an AMQP sender for connecting to an AMQP container (i.e. broker, AMQP server, AMQP router, ...) and start to send messages.

## Configuration

The configuration allows to specify following parameters :

* **_Endpoint_** : the AMQP endpoint configuration node which specifies the AMQP container to connect with this sender;
* **_Address_** : the AMQP address as target for this sender node;
* **_Autosettle_** : this flag specifies if the sent messages should be automatically settled once the peer settles them. Defaults to true;
* **_Dynamic_** : this flag specifies a request for the receiving peer to dynamically create a node at the target;
* **_Sender settle mode_** : it specifies the sender settle mode with following possibile values _unsettled_, _settled_ and _mixed_ as described by the AMQP 1.0 specification;
* **_Receiver settle mode_** : it specifies the receiver settle mode with following possibile values _first_ and _second_ as described by the AMQP 1.0 specification;
* **_Durable_** : it specifies what state of the terminus will be retained durably: the state of durable messages (_unsettled_state_ value), only existence and configuration of the terminus (_configuration_ value), or no state at all (_none_ value);
* **_Expiry policy_** : expiry policy of the target (see AMQP 1.0 specification for more information);
* **_Name_** : name used to identify the node inside the Node-RED flow;

![AMQP sender node](images/amqp_sender_node.png)

## Input/Output

This node provides following input and output :

* **_input_** : a "Node-RED" message with _msg.payload = <AMQP message>_ with a JSON format containing body and optional header, properties, application_properties and so on. This is the message to send;
* **_output_** : a "Node-RED" message with _msg.delivery = <AMQP delivery>_ with a JSON format containing information about delivery on sent message (i.e. "tag"). The other field is _msg.deliveryStatus = <AMQP delivery status>_ with accepted, rejected, released and modified as possible values;
24 changes: 24 additions & 0 deletions doc/Getting-Started.md
@@ -0,0 +1,24 @@
# Getting Started

Consider a simple flow with a simple AMQP sender node which sends a message to a queue on a running broker and an AMQP receiver node which reads from the queue.

![Getting started flow](images/getting_started/flow.png)

# Sender flow

The sender flow is composed of three following nodes :

* _inject_ : it's used in order to inject the message to set inside the AMQP message body and send to the queue on the broker. The msg.payload field is set to "Hello";
* _function_ : it's a function node (named "toAMQPmessage") which get the message from the previous _inject_ node and copis its payload in the "body" field expected as AMQP message by the AMQP sender node in order to send it correctly;
* _amqp-sender_ : an AMQP sender node which is configured to connect to a broker running on the local machine. It receives the message from the previous _function_ node and sends it to the configured queue;

![Getting started sender flow](images/getting_started/sender_flow.png)

# Receiver flow

The receiver flow is composed of two following nodes :

* _amqp-receiver_ : an AMQP sender node which is configured to connect to a broker running on the local machine. It reads message from a queue and provides it as output;
* _debug_ : this debug node is used in order to show the "body" of the received AMQP message to the debug window;

![Getting started receiver flow](images/getting_started/receiver_flow.png)
11 changes: 11 additions & 0 deletions doc/Home.md
@@ -0,0 +1,11 @@
Following the main features of nodes supported by the library.

* [Getting Started](Getting-Started.md)

Reference

* [AMQP Endpoint](AMQP-Endpoint.md)
* [AMQP Receiver](AMQP-Receiver.md)
* [AMQP Sender](AMQP-Sender.md)
* [AMQP Requester](AMQP-Requester.md)
* [AMQP Responder](AMQP-Responder.md)
Binary file added doc/images/amqp_endpoint_node.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_receiver_node.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_receiver_node_toolbox.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_requester_node.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_requester_node_toolbox.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_responder_node.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_responder_node_toolbox.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_sender_node.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/amqp_sender_node_toolbox.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/getting_started/flow.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/getting_started/receiver_flow.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/getting_started/sender_flow.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1e9cfec

Please sign in to comment.