mx.messaging

# MultiTopicConsumer - AS3 BlazeDS LCDS

Package | mx.messaging
Class | public class MultiTopicConsumer
Inheritance | MultiTopicConsumer AbstractConsumer MessageAgent EventDispatcher Object

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Like a Consumer, a MultiTopicConsumer subscribes to a destination with a single clientId and delivers messages to a single event handler. Unlike a Consumer it lets you register subscriptions for a list of subtopics and selector expressions at the same time from a single message handler. Where Consumer has subtopic and selector properties, this component has an addSubscription(subtopic, selector) method you use to add a new subscription to the existing set of subscriptions. Alternatively, you can populate the subscriptions property with a list of SubscriptionInfo instances that define the subscriptions for this destination.

Like the regular Consumer, the MultiTopicConsumer sends subscribe and unsubscribe messages which generate a MessageAckEvent or MessageFaultEvent depending upon whether the operation was successful or not. Once subscribed, a MultiTopicConsumer dispatches a MessageEvent for each message it receives.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The <mx:MultiTopicConsumer> tag has these properties:

           <mx:Consumer
            Properties
            subscriptions=""an empty ArrayCollection of SubscriptionInfo objects"
            resubscribeAttempts="5"
            resubscribeInterval="5000"
            timestamp="No default."
          />

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | authenticated : Boolean [read-only] Indicates if this MessageAgent is using an authenticated connection to its destination. | MessageAgent
|  | channelSet : ChannelSet Provides access to the ChannelSet used by the MessageAgent. | MessageAgent
|  | clientId : String [read-only] Provides access to the client id for the MessageAgent. | MessageAgent
|  | connected : Boolean [read-only] Indicates whether this MessageAgent is currently connected to its destination via its ChannelSet. | MessageAgent
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | destination : String Provides access to the destination for the MessageAgent. | MessageAgent
|  | maxFrequency : uint Determines the maximum number of messages per second the Consumer wants to receive. | AbstractConsumer
|  | requestTimeout : int Provides access to the request timeout in seconds for sent messages. | MessageAgent
|  | resubscribeAttempts : int The number of resubscribe attempts that the Consumer makes in the event that the destination is unavailable or the connection to the destination fails. | AbstractConsumer
|  | resubscribeInterval : int The number of milliseconds between resubscribe attempts. | AbstractConsumer
|  | subscribed : Boolean [read-only] Indicates whether the Consumer is currently subscribed. | AbstractConsumer
|  | subscriptions : ArrayCollection Stores an Array of SubscriptionInfo objects. | MultiTopicConsumer
|  | timestamp : Number Contains the timestamp of the most recent message this Consumer has received. | AbstractConsumer

Protected Properties
Hide Inherited Protected Properties
Show Inherited Protected Properties

| Property | Defined By
--- | --- | ---
|  | _shouldBeSubscribed : Boolean Flag indicating whether this consumer should be subscribed or not. | AbstractConsumer

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | MultiTopicConsumer() Constructor. | MultiTopicConsumer
|  | acknowledge(ackMsg:AcknowledgeMessage, msg:IMessage):void Invoked by a MessageResponder upon receiving a result for a sent message. | MessageAgent
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | EventDispatcher
|  | addSubscription(subtopic:String = null, selector:String = null, maxFrequency:uint = 0):void This is a convenience method for adding a new subscription. | MultiTopicConsumer
|  | channelConnectHandler(event:ChannelEvent):void Handles a CONNECT ChannelEvent. | MessageAgent
|  | channelDisconnectHandler(event:ChannelEvent):void Handles a DISCONNECT ChannelEvent. | MessageAgent
|  | channelFaultHandler(event:ChannelFaultEvent):void Handles a ChannelFaultEvent. | MessageAgent
|  | disconnect():void [override] Disconnects the Consumer from its remote destination. | AbstractConsumer
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | fault(errMsg:ErrorMessage, msg:IMessage):void Invoked by a MessageResponder upon receiving a fault for a sent message. | MessageAgent
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | hasPendingRequestForMessage(msg:IMessage):Boolean Returns true if there are any pending requests for the passed in message. | MessageAgent
|  | initialized(document:Object, id:String):void Called after the implementing object has been created and all properties specified on the tag have been assigned. | MessageAgent
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | logout():void Logs the MessageAgent out from its remote destination. | MessageAgent
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | receive(timestamp:Number = 0):void Requests any messages that are queued for this Consumer on the server. | AbstractConsumer
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | removeSubscription(subtopic:String = null, selector:String = null):void This method removes the subscription specified by the subtopic and selector. | MultiTopicConsumer
|  | setCredentials(username:String, password:String, charset:String = null):void Sets the credentials that the MessageAgent uses to authenticate to destinations. | MessageAgent
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | setRemoteCredentials(username:String, password:String, charset:String = null):void Sets the remote credentials that will be passed through to the remote destination for authenticating to secondary systems. | MessageAgent
|  | subscribe(clientId:String = null):void Subscribes to the remote destination. | AbstractConsumer
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | unsubscribe(preserveDurable:Boolean = false):void Unsubscribes from the remote destination. | AbstractConsumer
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Protected Methods
Hide Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | buildSubscribeMessage():CommandMessage [override] Returns a subscribe message. | MultiTopicConsumer
|  | buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage [override] Returns an unsubscribe mesage. | MultiTopicConsumer
|  | handleAuthenticationFault(errMsg:ErrorMessage, msg:IMessage):void Handles the authentication fault on the server. | MessageAgent
|  | initChannelSet(message:IMessage):void Used to automatically initialize the channelSet property for the MessageAgent before it connects for the first time. | MessageAgent
|  | internalSend(message:IMessage, waitForClientId:Boolean = true):void Sends a Message from the MessageAgent to its destination using the agent's ChannelSet. | MessageAgent
|  | reAuthorize(msg:IMessage):void This function should be overriden by sublasses to implement reauthentication due to server session time-out behavior specific to them. | MessageAgent

Events
Click for more information on events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | acknowledge | Dispatched when an acknowledge message is received for a sent message. | MessageAgent
|  | activate | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher
|  | channelConnect | Dispatched when the underlying Channel the MessageAgent is using connects. | MessageAgent
|  | channelDisconnect | Dispatched when the underlying Channel the MessageAgent is using disconnects. | MessageAgent
|  | channelFault | Dispatched when the underlying Channel the MessageAgent is using faults. | MessageAgent
|  | deactivate | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher
|  | fault | Dispatched when a message fault occurs. | MessageAgent
|  | message | Dispatched when a message is received by the Consumer. | MultiTopicConsumer
|  | propertyChange | Dispatched when the connected property of the MessageAgent changes. | MessageAgent

Property Detail

### subscriptions

property

`subscriptions:ArrayCollection`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Stores an Array of SubscriptionInfo objects. Each subscription contains a subtopic and a selector each of which can be null. A subscription with a non-null subtopic restricts the subscription to messages delivered with only that subtopic. If a subtopic is null, it uses the selector with no subtopic. If the selector and the subtopic is null, the subscription receives any messages targeted at the destination with no subtopic. The subtopic can contain a wildcard specification.

Before a call to the `subscribe()` method, this property can be set with no side effects. After the MultiTopicConsumer has subscribed to its destination, changing this value has the side effect of updating the MultiTopicConsumer's subscription to include any new subscriptions and remove any subscriptions you deleted from the ArrayCollection.

The remote destination must understand the value of the selector expression.

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get subscriptions():ArrayCollection`
`public function set subscriptions(value:ArrayCollection):void`
Constructor Detail

### MultiTopicConsumer

()
Constructor

`public function MultiTopicConsumer()`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Constructor.

Example ( How to use this example )
Copy

               function initConsumer():void
               {
                   var consumer:Consumer = new MultiTopicConsumer();
                   consumer.destination = "NASDAQ";
                   consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
                   consumer.addSubscription("myStock1", "operation IN ('BID', 'Ask')");
                   consumer.addSubscription("myStock2", "operation IN ('BID', 'Ask')");
                   consumer.subscribe();
               }

               function messageHandler(event:MessageEvent):void
               {
                   var msg:IMessage = event.message;
                   var info:Object = msg.body;
                   trace("-App recieved message: " + msg.toString());
               }

Method Detail

### addSubscription

()
method

`public function addSubscription(subtopic:String = null, selector:String = null, maxFrequency:uint = 0):void`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

This is a convenience method for adding a new subscription. It just creates a new SubscriptionInfo object and adds it to the subscriptions property. To call this method, you provide the subtopic and selector string for the new subscription. If the subtopic is null, the subscription applies to messages which do not have a subtopic set in the producer. If the selector string is null, all messages sent which match the subtopic string are received by this consumer.

Parameters

| `subtopic:String` (default = `null`)`` — The subtopic for the new subscription.
| `selector:String` (default = `null`)`` — The selector for the new subscription.
| `maxFrequency:uint` (default = `0`)`` — The maximum number of messages per second the Consumer wants to receive for the subscription. Note that this value overwrites the Consumer wide maxFrequency.

### buildSubscribeMessage

()
method

`override protected function buildSubscribeMessage():CommandMessage`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns a subscribe message.

Returns

| `CommandMessage` — The subscribe CommandMessage.

### buildUnsubscribeMessage

()
method

`override protected function buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Returns an unsubscribe mesage.

Parameters

| `preserveDurable:Boolean` — When true, durable JMS subscriptions are not destroyed, allowing consumers to later resubscribe and receive missed messages.

Returns

| `CommandMessage` — The unsubscribe CommandMessage.

### removeSubscription

()
method

`public function removeSubscription(subtopic:String = null, selector:String = null):void`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

This method removes the subscription specified by the subtopic and selector.

Parameters

| `subtopic:String` (default = `null`)`` — The subtopic for the subscription.
| `selector:String` (default = `null`)`` — The selector for the subscription.

Event Detail

### message

Event

Event Object Type: `mx.messaging.events.MessageEvent`
property MessageEvent.type = `mx.messaging.events.MessageEvent.MESSAGE`

Language Version: | ActionScript 3.0

Product Versions: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched when a message is received by the Consumer.

The MESSAGE event type; dispatched upon receipt of a message.

The value of this constant is `"message"`.

The properties of the event object have the following values:

Property | Value
--- | ---
`bubbles` | false
`cancelable` | false
`currentTarget` | The Object that defines the event listener that handles the event. For example, if you use `myButton.addEventListener()` to register an event listener, myButton is the value of the `currentTarget`.
`message` | The message associated with this event.
`target` | The Object that dispatched the event; it is not always the Object listening for the event. Use the `currentTarget` property to always access the Object listening for the event.

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00