class Producer
package feathers.messaging
extends AbstractProducer › MessageAgent
extended by AsyncRequest
A Producer sends messages to a destination. Producers dispatch a MessageAckEvent or MessageFaultEvent for each message they send depending upon whether the outbound message was sent and processed successfully or not.
Static variables
Constructor
new()
Constructor.
function sendMessage():Void
{
var producer:Producer = new Producer();
producer.destination = "NASDAQ";
var msg:AsyncMessage = new AsyncMessage();
msg.headers.operation = "UPDATE";
msg.body = {"SYMBOL":50.00};
producer.send(msg);
}
Variables
@:flash.propertysubtopic:String
Provides access to the subtopic for the remote destination that the MessageAgent uses.
Inherited Variables
Defined by AbstractProducer
@:flash.propertyautoConnect:Bool
If true
the Producer automatically connects to its destination the
first time the send()
method is called.
If false
then the connect()
method must be called explicitly to
establish a connection to the destination.
By default this property is true
, but applications that need to operate
in an offline mode may set this to false
to prevent the send()
method
from connecting implicitly.
@:flash.propertydefaultHeaders:Dynamic
The default headers to apply to messages sent by the Producer. Any default headers that do not exist in the message will be created. If the message already contains a matching header, the value in the message takes precedence and the default header value is ignored.
@:flash.propertypriority:Int
The default message priority for the messages sent by the Producer. The valid values are 0 to 9 (0 being lowest) and -1 means that the Producer does not have a priority set. Note that if the message already has a priority defined, that takes precedence over Producer's priority.
@:flash.propertyreconnectAttempts:Int
The number of reconnect attempts that the Producer makes in the event that the destination is unavailable or the connection to the destination closes. A value of -1 enables infinite attempts. A value of zero disables reconnect attempts.
Reconnect attempts are made at a constant rate according to the reconnect interval value. When a reconnect attempt is made if the underlying channel for the Producer is not connected or attempting to connect the channel will start a connect attempt. Subsequent Producer reconnect attempts that occur while the underlying channel connect attempt is outstanding are effectively ignored until the outstanding channel connect attempt succeeds or fails.
See also:
mx.messaging.Producer#reconnectInterval
@:flash.propertyreconnectInterval:Int
The number of milliseconds between reconnect attempts. If a Producer doesn't receive an acknowledgement for a connect attempt, it will wait the specified number of milliseconds before making a subsequent reconnect attempt. Setting the value to zero disables reconnect attempts.
Reconnect attempts are made at a constant rate according to this value. When a reconnect attempt is made if the underlying channel for the Producer is not connected or attempting to connect the channel will start a connect attempt. Subsequent Producer reconnect attempts that occur while the underlying channel connect attempt is outstanding are effectively ignored until the outstanding channel connect attempt succeeds or fails.
Throws:
ArgumentError | If the assigned value is negative. |
---|
See also:
mx.messaging.Producer#reconnectInterval
Defined by MessageAgent
@:flash.propertyread onlyauthenticated:Bool
Indicates if this MessageAgent is using an authenticated connection to its destination.
@:flash.propertychannelSet:ChannelSet
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.
@:flash.propertyread onlyclientId:String
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.
@:flash.propertyread onlyconnected:Bool
Indicates whether this MessageAgent is currently connected to its
destination via its ChannelSet. The propertyChange
event is dispatched when
this property changes.
@:flash.propertydestination:String
Provides access to the destination for the MessageAgent. Changing the destination will disconnect the MessageAgent if it is currently connected.
Throws:
mx.messaging.errors.InvalidDestinationError | If the destination is null or zero-length. |
---|
@:flash.propertyrequestTimeout:Int
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.
Inherited Methods
Defined by AbstractProducer
connect():Void
Connects the Producer to its target destination.
When a connection is established the connected
property will
change to true
and this property is bindable and generates
PropertyChangeEvent
s.
The internal TRIGGER_CONNECT_OPERATION CommandMessage that is sent will result
in an acknowledge or fault event depending upon whether the underlying channel
establishes its connection.
Throws:
mx.messaging.errors.InvalidDestinationError | If no destination is set.
|
---|
disconnect():Void
Disconnects the Producer from its remote destination.
This method does not wait for outstanding network operations to complete.
After invoking disconnect()
, the Producer will report that it is not
connected and it will not receive any outstanding message acknowledgements or faults.
Disconnecting stops automatic reconnect attempts if they are running.
send(message:IMessage):Void
Sends the specified message to its destination. If the producer is being used for publish/subscribe messaging, only messages of type AsyncMessage should be sent unless a custom message type is being used and the message destination on the server has been configured to process the custom message type.
Parameters:
message | The Message to send. |
---|
Throws:
mx.messaging.errors.InvalidDestinationError | If no destination is set.
|
---|
Defined by MessageAgent
acknowledge(ackMsg:AcknowledgeMessage, msg:IMessage):Void
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 | The AcknowledgMessage returned. |
---|---|
msg | The original sent message. |
channelConnectHandler(event:ChannelEvent):Void
Handles a CONNECT ChannelEvent. Subclasses that need to perform custom
processing should override this method, and invoke
super.channelConnectHandler()
.
Parameters:
event | The ChannelEvent. |
---|
channelDisconnectHandler(event:ChannelEvent):Void
Handles a DISCONNECT ChannelEvent. Subclasses that need to perform
custom processing should override this method, and invoke
super.channelDisconnectHandler()
.
Parameters:
event | The ChannelEvent. |
---|
channelFaultHandler(event:ChannelFaultEvent):Void
Handles a ChannelFaultEvent. Subclasses that need to perform custom
processing should override this method, and invoke
super.channelFaultHandler()
.
Parameters:
The | ChannelFaultEvent |
---|
fault(errMsg:ErrorMessage, msg:IMessage):Void
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 | The ErrorMessage. |
---|---|
msg | The original sent message that caused this fault. |
hasPendingRequestForMessage(msg:IMessage):Bool
Returns true if there are any pending requests for the passed in message. This method should be overriden by subclasses
Parameters:
msg | The message for which the existence of pending requests is checked. |
---|
Returns:
Returns true
if there are any pending requests for the
passed in message.
initialized(document:Any, id:String):Void
Called after the implementing object has been created and all properties specified on the tag have been assigned.
Parameters:
document | MXML document that created this object. |
---|---|
id | id used by the document to refer to this object. If the object is a deep property on the document, id is null. |
logout():Void
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.
See also:
mx.messaging.ChannelSet#logout()
@:value({ charset : null })setCredentials(username:String, password:String, ?charset:String):Void
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 | The username. |
---|---|
password | The password. |
charset | 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:
flash.errors.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. |
---|
@:value({ charset : null })setRemoteCredentials(username:String, password:String, ?charset:String):Void
Sets the remote credentials that will be passed through to the remote destination for authenticating to secondary systems.
Parameters:
username | The username. |
---|---|
password | The password. |
charset | 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". |