Packagemx.messaging
Classpublic class MultiTopicConsumer
InheritanceMultiTopicConsumer Inheritance AbstractConsumer Inheritance MessageAgent Inheritance EventDispatcher Inheritance Object

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
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 Inheriteddestination : String
Provides access to the destination for the MessageAgent.
MessageAgent
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
 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_agentType : String
The type of MessageAgent.
MessageAgent
 Inherited_credentials : String
The Base64 encoded credentials that will be passed through to the ChannelSet.
MessageAgent
 Inherited_credentialsCharset : String
The character set encoding used to create the credentials String.
MessageAgent
 Inherited_disconnectBarrier : Boolean
Indicates whether the agent is explicitly disconnected.
MessageAgent
 Inherited_ignoreFault : Boolean = false
Flag being set to true denotes that we should skip remaining fault processing logic because the fault has already been handled.
MessageAgent
 Inherited_log : ILogger
The logger MUST be assigned by subclasses, for example Consumer and Producer.
MessageAgent
 Inherited_shouldBeSubscribed : Boolean
Flag indicating whether this consumer should be subscribed or not.
AbstractConsumer
Public Methods
 MethodDefined By
  
Constructs a MultiTopicConsumer.
MultiTopicConsumer
 Inherited
Invoked by a MessageResponder upon receiving a result for a sent message.
MessageAgent
 Inherited
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):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
Disconnects the Consumer from its remote destination.
AbstractConsumer
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Invoked by a MessageResponder upon receiving a fault for a sent message.
MessageAgent
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 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
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Logs the MessageAgent out from its remote destination.
MessageAgent
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
receive(timestamp:Number = 0):void
Requests any messages that are queued for this Consumer on the server.
AbstractConsumer
 Inherited
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
 Inherited
setCredentials(username:String, password:String, charset:String = null):void
Sets the credentials that the MessageAgent uses to authenticate to destinations.
MessageAgent
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 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
Returns the string representation of the specified object.
Object
 Inherited
unsubscribe(preserveDurable:Boolean = false):void
Unsubscribes from the remote destination.
AbstractConsumer
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Protected Methods
 MethodDefined By
 Inherited
MessageAgent
  
MultiTopicConsumer
  
MultiTopicConsumer
 Inherited
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
MultiTopicConsumer
 Inherited
This function should be overriden by sublasses to implement re-authorization due to server session time-out behavior specific to them.
MessageAgent
  
MultiTopicConsumer
Events
 Event Summary Defined By
 Inherited Dispatched when an acknowledge message is received for a sent message.MessageAgent
 Inherited Dispatched when Flash Player or an AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited Dispatched when the underlying Channel the MessageAgent is using connects.MessageAgent
 Inherited Dispatched when the underlying Channel the MessageAgent is using disconnects.MessageAgent
 Inherited Dispatched when the underlying Channel the MessageAgent is using faults.MessageAgent
 Inherited Dispatched when Flash Player or an AIR application loses operating system focus and is becoming inactive.EventDispatcher
 Inherited Dispatched when a message fault occurs.MessageAgent
   Dispatched when a message is received by the Consumer.MultiTopicConsumer
 Inherited Dispatched when the connected property of the MessageAgent changes.MessageAgent
Property Detail
subscriptionsproperty
subscriptions:ArrayCollection  [read-write]

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()

Constructs a MultiTopicConsumer.


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):void

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)
 
selector:String (default = null)

buildSubscribeMessage()method 
protected override function buildSubscribeMessage():CommandMessage

Returns
CommandMessage
buildUnsubscribeMessage()method 
protected override function buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage

Parameters

preserveDurable:Boolean

Returns
CommandMessage
internalSend()method 
protected override function internalSend(message:IMessage, waitForClientId:Boolean = true):void

Parameters

message:IMessage
 
waitForClientId:Boolean (default = true)

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

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

Parameters

subtopic:String (default = null)
 
selector:String (default = null)

setSubscribed()method 
protected override function setSubscribed(value:Boolean):void

Parameters

value:Boolean

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

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.