ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
mx.messaging 

MessageAgent  - AS3 BlazeDS LCDS

Packagemx.messaging
Classpublic class MessageAgent
InheritanceMessageAgent Inheritance EventDispatcher Inheritance Object
Implements IMXMLObject
Subclasses AbstractConsumer, AbstractProducer

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

The MessageAgent class provides the basic low-level functionality common to message handling for a destination.

Note: For advanced use only. Use this class for creating custom message agents like the existing Producer and Consumer classes.

MXML SyntaxexpandedHide MXML Syntax

All message agent classes, including the Producer and Consumer classes, extend MessageAgent and inherit the following tag attributes:

   <mx:tagname
Properties channelSet="No default." clientId="No default." connected="false" destination="No default." requestTimeout="-1" subtopic="No default." Events acknowledge="No default." channelConnect="No default." channelDisconnect="No default." channelFault="No default." fault="No default." propertyChange="No default." />


Public Properties
 PropertyDefined 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
 Inheritedconstructor : 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
  requestTimeout : int
Provides access to the request timeout in seconds for sent messages.
MessageAgent
Public Methods
 MethodDefined By
  
Constructor.
MessageAgent
  
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
  
Handles a CONNECT ChannelEvent.
MessageAgent
  
Handles a DISCONNECT ChannelEvent.
MessageAgent
  
Handles a ChannelFaultEvent.
MessageAgent
  
Disconnects the MessageAgent's network connection.
MessageAgent
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
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
  
Returns true if there are any pending requests for the passed in message.
MessageAgent
  
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
  
Logs the MessageAgent out from its remote destination.
MessageAgent
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
  
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
  
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
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 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
  
Handles the authentication fault on the server.
MessageAgent
  
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
  
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
  Dispatched when an acknowledge message is received for a sent message.MessageAgent
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
  Dispatched when the underlying Channel the MessageAgent is using connects.MessageAgent
  Dispatched when the underlying Channel the MessageAgent is using disconnects.MessageAgent
  Dispatched when the underlying Channel the MessageAgent is using faults.MessageAgent
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
  Dispatched when a message fault occurs.MessageAgent
  Dispatched when the connected property of the MessageAgent changes.MessageAgent
Property Detail

authenticated

property
authenticated:Boolean  [read-only]

Indicates if this MessageAgent is using an authenticated connection to its destination.

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 authenticated():Boolean

channelSet

property 
channelSet:ChannelSet

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

Provides access to the ChannelSet used by the MessageAgent. The ChannelSet can be manually constructed and assigned, or it will be dynamically initialized to use the configured Channels for the destination for this MessageAgent.

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 channelSet():ChannelSet
    public function set channelSet(value:ChannelSet):void

clientId

property 
clientId:String  [read-only]

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

Provides access to the client id for the MessageAgent. MessageAgents are assigned their client id by the remote destination and this value is used to route messages from the remote destination to the proper MessageAgent.

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 clientId():String

connected

property 
connected:Boolean  [read-only]

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

Indicates whether this MessageAgent is currently connected to its destination via its ChannelSet. The propertyChange event is dispatched when this property changes.

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 connected():Boolean

destination

property 
destination:String

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

Provides access to the destination for the MessageAgent. Changing the destination will disconnect the MessageAgent if it is currently connected.

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 destination():String
    public function set destination(value:String):void

Throws
InvalidDestinationError — If the destination is null or zero-length.

requestTimeout

property 
requestTimeout:int

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

Provides access to the request timeout in seconds for sent messages. If an acknowledgement, response or fault is not received from the remote destination before the timeout is reached the message is faulted on the client. A value less than or equal to zero prevents request timeout.

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 requestTimeout():int
    public function set requestTimeout(value:int):void
Constructor Detail

MessageAgent

()Constructor
public function MessageAgent()

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.

Method Detail

acknowledge

()method
public function acknowledge(ackMsg:AcknowledgeMessage, msg:IMessage):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

Invoked by a MessageResponder upon receiving a result for a sent message. Subclasses may override this method if they need to perform custom acknowledgement processing, but must invoke super.acknowledge() as well. This method dispatches a MessageAckEvent.

Parameters

ackMsg:AcknowledgeMessage — The AcknowledgMessage returned.
 
msg:IMessage — The original sent message.

channelConnectHandler

()method 
public function channelConnectHandler(event:ChannelEvent):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

Handles a CONNECT ChannelEvent. Subclasses that need to perform custom processing should override this method, and invoke super.channelConnectHandler().

Parameters

event:ChannelEvent — The ChannelEvent.

channelDisconnectHandler

()method 
public function channelDisconnectHandler(event:ChannelEvent):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

Handles a DISCONNECT ChannelEvent. Subclasses that need to perform custom processing should override this method, and invoke super.channelDisconnectHandler().

Parameters

event:ChannelEvent — The ChannelEvent.

channelFaultHandler

()method 
public function channelFaultHandler(event:ChannelFaultEvent):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

Handles a ChannelFaultEvent. Subclasses that need to perform custom processing should override this method, and invoke super.channelFaultHandler().

Parameters

event:ChannelFaultEvent — ChannelFaultEvent

disconnect

()method 
public function disconnect():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

Disconnects the MessageAgent's network connection. This method does not wait for outstanding network operations to complete.

fault

()method 
public function fault(errMsg:ErrorMessage, msg:IMessage):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

Invoked by a MessageResponder upon receiving a fault for a sent message. Subclasses may override this method if they need to perform custom fault processing, but must invoke super.fault() as well. This method dispatchs a MessageFaultEvent.

Parameters

errMsg:ErrorMessage — The ErrorMessage.
 
msg:IMessage — The original sent message that caused this fault.

handleAuthenticationFault

()method 
protected function handleAuthenticationFault(errMsg:ErrorMessage, msg:IMessage):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

Handles the authentication fault on the server. If the authenticated flag is true, the authentication fault must have been caused by a session expiration on the server. Set the authenticated state to false and if loginAfterDisconnect flag is enabled, resend credentials to the server by disconnecting and resending the message again.

Parameters

errMsg:ErrorMessage — The Error Message.
 
msg:IMessage — The message that caused the fault and should be resent once we have disconnected/connected causing re-authentication.

hasPendingRequestForMessage

()method 
public function hasPendingRequestForMessage(msg:IMessage):Boolean

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 true if there are any pending requests for the passed in message. This method should be overriden by subclasses

Parameters

msg:IMessage — The message for which the existence of pending requests is checked.

Returns
Boolean — Returns true if there are any pending requests for the passed in message.

initChannelSet

()method 
protected function initChannelSet(message:IMessage):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

Used to automatically initialize the channelSet property for the MessageAgent before it connects for the first time. Subtypes may override to perform custom initialization.

Parameters

message:IMessage — The message that needs to be sent.

initialized

()method 
public function initialized(document:Object, id:String):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

Called after the implementing object has been created and all properties specified on the tag have been assigned.

Parameters

document:Object — MXML document that created this object.
 
id:String — id used by the document to refer to this object. If the object is a deep property on the document, id is null.

internalSend

()method 
protected function internalSend(message:IMessage, waitForClientId:Boolean = true):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

Sends a Message from the MessageAgent to its destination using the agent's ChannelSet. MessageAgent subclasses must use this method to send their messages.

Parameters

message:IMessage — The message to send.
 
waitForClientId:Boolean (default = true) — If true the message may be queued until a clientId has been assigned to the agent. In general this is the desired behavior. For special behavior (automatic reconnect and resubscribe) the agent may pass false to override the default queuing behavior.

Throws
InvalidDestinationError — If no destination is set.

logout

()method 
public function logout():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

Logs the MessageAgent out from its remote destination. Logging out of a destination applies to everything connected using the same ChannelSet as specified in the server configuration. For example, if several DataService components are connected over an RTMP channel and logout() is invoked on one of them, all other client components that are connected using the same ChannelSet are also logged out.

Note: Adobe recommends that you use the mx.messaging.ChannelSet.logout() method rather than this method.

Related API Elements

reAuthorize

()method 
protected function reAuthorize(msg:IMessage):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 function should be overriden by sublasses to implement reauthentication due to server session time-out behavior specific to them. In general, it should follow disconnect, connect, resend message pattern.

Parameters

msg:IMessage — The message that caused the fault and should be resent once we have disconnected/connected causing reauthentication.

setCredentials

()method 
public function setCredentials(username:String, password:String, charset: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

Sets the credentials that the MessageAgent uses to authenticate to destinations. The credentials are applied to all services connected over the same ChannelSet.

Parameters

username:String — The username.
 
password:String — The password.
 
charset:String (default = null) — The character set encoding to use while encoding the credentials. The default is null, which implies the legacy charset of ISO-Latin-1. The only other supported charset is "UTF-8".

Throws
IllegalOperationError — in two situations; if credentials have already been set and an authentication is in progress with the remote detination, or if authenticated and the credentials specified don't match the currently authenticated credentials.

setRemoteCredentials

()method 
public function setRemoteCredentials(username:String, password:String, charset: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

Sets the remote credentials that will be passed through to the remote destination for authenticating to secondary systems.

Parameters

username:String — The username.
 
password:String — The password.
 
charset:String (default = null) — The character set encoding to use while encoding the remote credentials. The default is null, which implies the legacy charset of ISO-Latin-1. The only other currently supported option is "UTF-8".
Event Detail

acknowledge

Event
Event Object Type: mx.messaging.events.MessageAckEvent
property MessageAckEvent.type = mx.messaging.events.MessageAckEvent.ACKNOWLEDGE

Language Version: ActionScript 3.0
Product Versions: BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3, BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3
Runtime Versions: Flash Player 9, AIR 1.1, Flash Player 9, AIR 1.1

Dispatched when an acknowledge message is received for a sent message.

The ACKNOWLEDGE event type; dispatched upon receipt of an acknowledgement.

The value of this constant is "acknowledge".

The properties of the event object have the following values:

PropertyValue
acknowledgeMessage Utility property to get the message property from MessageEvent as an AcknowledgeMessage.
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.
correlate The original Message correlated with this acknowledgement.
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.

channelConnect

Event  
Event Object Type: mx.messaging.events.ChannelEvent
property ChannelEvent.type = mx.messaging.events.ChannelEvent.CONNECT

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 the underlying Channel the MessageAgent is using connects.

The CONNECT event type; indicates that the Channel connected to its endpoint.

The value of this constant is "channelConnect".

The properties of the event object have the following values:

PropertyValue
bubblesfalse
cancelablefalse
channelThe channel that generated this event.
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.
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.
reconnecting Indicates whether the channel that generated this event is reconnecting.
rejected Indicates whether the channel that generated this event was rejected. This would be true in the event that the channel has been disconnected due to inactivity and should not attempt to failover or connect on an alternate channel.

channelDisconnect

Event  
Event Object Type: mx.messaging.events.ChannelEvent
property ChannelEvent.type = mx.messaging.events.ChannelEvent.DISCONNECT

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 the underlying Channel the MessageAgent is using disconnects.

The DISCONNECT event type; indicates that the Channel disconnected from its endpoint.

The value of this constant is "channelDisconnect".

The properties of the event object have the following values:

PropertyValue
bubblesfalse
cancelablefalse
channelThe channel that generated this event.
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.
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.
reconnecting Indicates whether the channel that generated this event is reconnecting.
rejected Indicates whether the channel that generated this event was rejected. This would be true in the event that the channel has been disconnected due to inactivity and should not attempt to failover or connect on an alternate channel.

channelFault

Event  
Event Object Type: mx.messaging.events.ChannelFaultEvent
property ChannelFaultEvent.type = mx.messaging.events.ChannelFaultEvent.FAULT

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 the underlying Channel the MessageAgent is using faults.

The FAULT event type; indicates that the Channel faulted.

The value of this constant is "channelFault".

The properties of the event object have the following values:

PropertyValue
bubblesfalse
cancelablefalse
channelThe Channel that generated this event.
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.
faultCodeProvides destination-specific details of the failure.
faultDetailProvides access to the destination-specific reason for the failure.
faultStringProvides access to the underlying reason for the failure if the channel did not raise the failure itself.
reconnecting Indicates whether the channel that generated this event is reconnecting.
rootCause Provides access to the underlying reason for the failure if the channel did not raise the failure itself.
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.

fault

Event  
Event Object Type: mx.messaging.events.MessageFaultEvent
property MessageFaultEvent.type = mx.messaging.events.MessageFaultEvent.FAULT

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 fault occurs.

The FAULT event type; dispatched for a message fault.

The value of this constant is "fault".

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.
faultCodeProvides destination-specific details of the failure.
faultDetailProvides access to the destination-specific reason for the failure.
faultStringProvides access to the underlying reason for the failure if the channel did not raise the failure itself.
messageThe ErrorMessage for this event.
rootCause Provides access to the underlying reason for the failure, if one exists.
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.

propertyChange

Event  
Event Object Type: mx.events.PropertyChangeEvent
property PropertyChangeEvent.type = mx.events.PropertyChangeEvent.PROPERTY_CHANGE

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 the connected property of the MessageAgent changes. Also dispatched when the subscribed of a Consumer changes.

The PropertyChangeEvent.PROPERTY_CHANGE constant defines the value of the type property of the event object for a PropertyChange event.

The properties of the event object have the following values:

PropertyValue
bubblesDetermined by the constructor; defaults to false.
cancelableDetermined by the constructor; defaults to false.
kindThe kind of change; PropertyChangeEventKind.UPDATE or PropertyChangeEventKind.DELETE.
oldValueThe original property value.
newValueThe new property value, if any.
propertyThe property that changed.
sourceThe object that contains the property that changed.
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.
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.

Related API Elements