Packagemx.messaging
Classpublic class MultiTopicConsumer
InheritanceMultiTopicConsumer Inheritance AbstractConsumer Inheritance MessageAgent Inheritance flash.events.EventDispatcher

Language Version : ActionScript 3.0
Product Versions : BlazeDS 4, LCDS 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 SyntaxexpandedHide 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
 PropertyDefined By
 Inheritedauthenticated : Boolean
[read-only] Indicates if this MessageAgent is using an authenticated connection to its destination.
MessageAgent
 InheritedchannelSet : ChannelSet
Provides access to the ChannelSet used by the MessageAgent.
MessageAgent
 InheritedclientId : String
[read-only] Provides access to the client id for the MessageAgent.
MessageAgent
 Inheritedconnected : Boolean
[read-only] Indicates whether this MessageAgent is currently connected to its destination via its ChannelSet.
MessageAgent
 Inheriteddestination : String
Provides access to the destination for the MessageAgent.
MessageAgent
 InheritedmaxFrequency : uint
Determines the maximum number of messages per second the Consumer wants to receive.
AbstractConsumer
 InheritedrequestTimeout : int
Provides access to the request timeout in seconds for sent messages.
MessageAgent
 InheritedresubscribeAttempts : 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
 InheritedresubscribeInterval : int
The number of milliseconds between resubscribe attempts.
AbstractConsumer
 Inheritedsubscribed : Boolean
[read-only] Indicates whether the Consumer is currently subscribed.
AbstractConsumer
  subscriptions : ArrayCollection
Stores an Array of SubscriptionInfo objects.
MultiTopicConsumer
 Inheritedtimestamp : Number
Contains the timestamp of the most recent message this Consumer has received.
AbstractConsumer
Protected Properties
 PropertyDefined By
 Inherited_shouldBeSubscribed : Boolean
Flag indicating whether this consumer should be subscribed or not.
AbstractConsumer
Public Methods
 MethodDefined By
  
Constructor.
MultiTopicConsumer
 Inherited
Invoked by a MessageResponder upon receiving a result for a sent message.
MessageAgent
  
addSubscription(subtopic:String = null, selector:String = null, maxFrequency:uint = 0):void
This is a convenience method for adding a new subscription.
MultiTopicConsumer
 Inherited
Handles a CONNECT ChannelEvent.
MessageAgent
 Inherited
Handles a DISCONNECT ChannelEvent.
MessageAgent
 Inherited
Handles a ChannelFaultEvent.
MessageAgent
 Inherited
disconnect():void
[override] Disconnects the Consumer from its remote destination.
AbstractConsumer
 Inherited
fault(errMsg:ErrorMessage, msg:IMessage):void
Invoked by a MessageResponder upon receiving a fault for a sent message.
MessageAgent
 Inherited
Returns true if there are any pending requests for the passed in message.
MessageAgent
 Inherited
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
 Inherited
logout():void
Logs the MessageAgent out from its remote destination.
MessageAgent
 Inherited
receive(timestamp:Number = 0):void
Requests any messages that are queued for this Consumer on the server.
AbstractConsumer
  
removeSubscription(subtopic:String = null, selector:String = null):void
This method removes the subscription specified by the subtopic and selector.
MultiTopicConsumer
 Inherited
setCredentials(username:String, password:String, charset:String = null):void
Sets the credentials that the MessageAgent uses to authenticate to destinations.
MessageAgent
 Inherited
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
 Inherited
subscribe(clientId:String = null):void
Subscribes to the remote destination.
AbstractConsumer
 Inherited
unsubscribe(preserveDurable:Boolean = false):void
Unsubscribes from the remote destination.
AbstractConsumer
Protected Methods
 MethodDefined By
  
[override] Returns a subscribe message.
MultiTopicConsumer
  
buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage
[override] Returns an unsubscribe mesage.
MultiTopicConsumer
 Inherited
Handles the authentication fault on the server.
MessageAgent
 Inherited
initChannelSet(message:IMessage):void
Used to automatically initialize the channelSet property for the MessageAgent before it connects for the first time.
MessageAgent
 Inherited
internalSend(message:IMessage, waitForClientId:Boolean = true):void
Sends a Message from the MessageAgent to its destination using the agent's ChannelSet.
MessageAgent
 Inherited
This function should be overriden by sublasses to implement reauthentication due to server session time-out behavior specific to them.
MessageAgent
Events
 Event Summary Defined By
 InheritedDispatched when an acknowledge message is received for a sent message.MessageAgent
 InheritedDispatched when the underlying Channel the MessageAgent is using connects.MessageAgent
 InheritedDispatched when the underlying Channel the MessageAgent is using disconnects.MessageAgent
 InheritedDispatched when the underlying Channel the MessageAgent is using faults.MessageAgent
 InheritedDispatched when a message fault occurs.MessageAgent
  Dispatched when a message is received by the Consumer.MultiTopicConsumer
 InheritedDispatched when the connected property of the MessageAgent changes.MessageAgent
Property Detail
subscriptionsproperty
subscriptions:ArrayCollection

Language Version : ActionScript 3.0
Product Versions : BlazeDS 4, LCDS 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.


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, LCDS 3
Runtime Versions : Flash Player 9, AIR 1.1

Constructor.


Example
           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, LCDS 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, LCDS 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, LCDS 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, LCDS 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
MessageEvent.type property = mx.messaging.events.MessageEvent.MESSAGE

Language Version : ActionScript 3.0
Product Versions : BlazeDS 4, LCDS 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:

PropertyValue
bubblesfalse
cancelablefalse
currentTargetThe 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.
messageThe message associated with this event.
targetThe 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.