5.3. Using AMF Message Destinations

For simple messaging needs where there are no requirements for message durability, transaction support, or advanced routing logic, the BlazeDS-native AMF-based message destination is the ideal choice. These destinations can be fully configured in a Spring application context using the message-destination XML namespace tag. For example, assuming a Spring-managed MessageBroker has been configured, all that is needed to set up a basic destination named "event-bus" with default settings is the following:

<flex:message-destination id="event-bus" />    	
    	

This sets up a destination to use the BlazeDS ActionScriptAdapter to handle incoming messages. The settings of the destination can be further customized through the various attributes of the message-destination tag. Here is an example of the "event-bus" destination configured with most of the available attributes:

<flex:message-destination id="event-bus" 
	message-broker="messageServiceBroker"
	channels="my-polling-amf, my-secure-amf" 
	allow-subtopics="true" 
	cluster-message-routing="broadcast" 
	message-time-to-live="1" 
	send-security-constraint="fooConstraint" 
	subscribe-security-constraint="barConstraint" 
	subscription-timeout-minutes="1" 
	subtopic-separator="/" 
	throttle-inbound-max-frequency="500"
	throttle-inbound-policy="ERROR" 
	throttle-outbound-max-frequency="500" 
	throttle-outbound-policy="IGNORE" />    	
    	

The message-broker attribute is a reference to the id of a Spring-managed MessageBroker. The channels attribute allows you to specify a comma-delimited list of the BlazeDS channels to be used (in order of preference) for this destination. The remaining attributes correspond to the options available via the network and server settings when configuring a message destination in the BlazeDS-specific XML. Each of these additional attributes is documented in the XSD to provide live code-completion assistance. For additional details on their usage, see the BlazeDS documentation. The message-destination tag serves as a base for the jms-message-destination and integration-message-destination tags so that the same configuration options are available no matter the type of the underlying MessagingAdapter.

The only attribute available on the message-destination tag that is not available in the JMS and Spring Integration implementations is the service-adapter attribute, which can be used to provide a custom ServiceAdapter via a reference to a ManageableComponentFactoryBean. This can be used to provide integration with additional messaging protocols not directly supported by Spring BlazeDS Integration. See Providing Custom Service Adapters for additional information on using the ManageableComponentFactoryBean.