xmlns:multicast="http://www.mulesoft.org/schema/mule/multicast"
Multicast Module Reference
Namespace and Syntax
XML namespace:
XML Schema location:
http://www.mulesoft.org/schema/mule/multicast http://www.mulesoft.org/schema/mule/multicast/3.2/mule-multicast.xsd
Connector syntax:
<multicast:connector name="mcConnector" receiveBufferSize="1024" sendBufferSize="1024" timeout="0" keepSendSocketOpen="false" broadcast="false" timeToLive="127" loopback="true'/>
Endpoint syntax: You can define your endpoints two different ways:
-
Prefixed endpoint:
<multicast:inbound-endpoint host="localhost" port="65433"/>
-
Non-prefixed URI:
<inbound-endpoint address="multicast://localhost:65433"/>
See the sections below for more information.
Considerations
IP Multicasting is a service provided by IP (the internet protocol layer), that allows one-to-many communication. The most common use of IP Multicasting is to send UDP datagrams to multiple sockets located on different systems. Mule supports this with the Multicast transport. Note that, except for the communication being many-to-one instead of one-to-one, the Multicast transport is very similar to the UDP transport and the same considerations should be observed.
As shown in the examples below, the Multicast transport has two purposes:
-
Send messages to a group of IP Multicasting sockets
-
Read messages sent to a group of IP Multicasting sockets
Features
The Multicasting module allows a Mule application both to send and receive IP Multicasting datagrams, and to declaratively customize the following features of IP Multicasting (with the standard name for each feature, where applicable):
-
The timeout for sending or receiving messages (SO_TIMEOUT).
-
Whether to allow sending broadcast messages (SO_BROADCAST).
-
Whether to close a socket after sending a message.
-
The maximum size of messages that can be received.
-
The time to live for the packets that are sent.
-
Whether to loop packets back to the local socket.
Multicast endpoints can be used in one of two ways:
-
To receive an IP Multicasting datagram, create an inbound Multicast endpoint.
-
To send an IP Multicasting datagram, create an outbound Multicast endpoint.
Usage
To use Multicast endpoints
-
Add the MULE Multicast namespace to your configuration:
-
Define the multicast prefix using xmlns:multicast="http://www.mulesoft.org/schema/mule/multicast"
-
Define the schema location with http://www.mulesoft.org/schema/mule/multicast http://www.mulesoft.org/schema/mule/multicast/3.2/mule-multicast.xsd
-
-
Define one or more connectors for Multicast endpoints.
-
Create a Multicast connector:
-
<multicast:connector name="multicastConnector"/>
-
Create Multicast endpoints.
-
Datagrams are received on inbound endpoints. The bytes in the datagram become the message payload.
-
Datagrams are sent to outbound endpoints. The bytes in the message payload become the datagram.
-
Both kinds of endpoints are identified by a host name and a port. The host name, in this case, is one of the standard IP multicast addresses defined here. When a datagram is sent to a multicasting host/port combination, all sockets subscribed to that host and port receive the message.
-
Multicast endpoints are always one-way.
Example Configurations
Mule Flow
Copy datagrams from one port to another in a flow
<multicast:connector name="connector"/> ❶<flow name="copy"> <multicast:inbound-endpoint host="224.0.0.0" port="4444" exchange-pattern="one-way"/> ❷ <pass-through-router> <multicast:outbound-endpoint host="224.0.0.0" port="5555" exchange-pattern="one-way" /> ❸ </pass-through-router></flow>
Mule Service
Copy datagrams from one port to another in a service
<multicast:connector name="connector"/> ❶<service name="copy> <inbound> <multicast:inbound-endpoint host="224.0.0.0" port="4444" exchange-pattern="one-way"/> ❷ </inbound> <outbound> <multicast:outbound-endpoint host="224.0.0.0" port="5555" exchange-pattern="one-way" /> ❸ </outbound></service>
Configuration Options
Multicast Connector attributes
Name | Description | Default |
---|---|---|
broadcast |
Set to true to allow sending to broadcast ports. |
false |
keepSendSocketOpen |
Whether to keep the the socket open after sending a message. |
false |
loopback |
Whether to loop messages back to the socket that sent them. |
false |
receiveBufferSize |
The size of the largest (in bytes) datagram that can be received. |
16 Kbytes |
sendBufferSize |
The size of the network send buffer. |
16 Kbytes |
timeout |
The timeout used for both sending and receiving. |
system default |
timeToLive |
How long the packet stays active. This is a number between 1 and 225. |
System default |
Javadoc API Reference
The Javadoc for this module can be found here: Multicast