(仅限 BlazeDS)
mx.messaging
public class AbstractConsumer
继承AbstractConsumer Inheritance MessageAgent Inheritance EventDispatcher Inheritance Object
子类 Consumer, MultiTopicConsumer

AbstractConsumer 是 Consumer 类和 MultiTopicConsumer 类的基类。您可以使用这些类接收服务器推送的消息。



公共属性
 属性定义方
 Inheritedauthenticated : Boolean
[只读 (read-only)] 指示此 MessageAgent 是否使用指向其目标的经过身份验证的连接。
MessageAgent
 InheritedchannelSet : ChannelSet
提供对 MessageAgent 使用的 ChannelSet 的访问。
MessageAgent
 InheritedclientId : String
[只读 (read-only)] 提供对 MessageAgent 的客户端 id 的访问。
MessageAgent
 Inheritedconnected : Boolean
[只读 (read-only)] 指示此 MessageAgent 当前是否已通过其 ChannelSet 连接到了其目标。
MessageAgent
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheriteddestination : String
提供对 MessageAgent 的目标的访问。
MessageAgent
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 InheritedrequestTimeout : int
提供对已发送消息的请求超时(以秒为单位)的访问。
MessageAgent
  resubscribeAttempts : int
Consumer 在目标不可用或连接到目标失败的情况下进行的重新订阅尝试次数。
AbstractConsumer
  resubscribeInterval : int
重新订阅尝试之间间隔的毫秒数。
AbstractConsumer
  subscribed : Boolean
[只读 (read-only)] 指示 Consumer 当前是否处于订阅状态。
AbstractConsumer
  timestamp : Number
包含此 Consumer 接收到的最新消息的时间戳。
AbstractConsumer
受保护的属性
 属性定义方
  _shouldBeSubscribed : Boolean
用于指示是否应订阅此使用者的标志。
AbstractConsumer
公共方法
 方法定义方
  
构造 Consumer。
AbstractConsumer
 Inherited
收到已发送消息的结果时由 MessageResponder 调用。
MessageAgent
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
处理 CONNECT ChannelEvent。
MessageAgent
 Inherited
处理 DISCONNECT ChannelEvent。
MessageAgent
 Inherited
处理 ChannelFaultEvent。
MessageAgent
  
断开 Consumer 与其远程目标之间的连接。
AbstractConsumer
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
收到已发送消息的错误时由 MessageResponder 调用。
MessageAgent
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
如果存在传入消息的任何挂起的请求,则返回 true。
MessageAgent
 Inherited
在创建了实现对象、并分配了标签上指定的所有属性后调用。
MessageAgent
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
从其远程目标注销 MessageAgent。
MessageAgent
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
receive(timestamp:Number = 0):void
请求在服务器上为此 Consumer 排队的所有消息。
AbstractConsumer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
setCredentials(username:String, password:String, charset:String = null):void
设置 MessageAgent 用于对目标进行身份验证的凭据。
MessageAgent
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
setRemoteCredentials(username:String, password:String, charset:String = null):void
设置将传递到远程目标以对次系统进行身份验证的远程凭据。
MessageAgent
  
subscribe(clientId:String = null):void
订阅远程目标。
AbstractConsumer
 Inherited
返回指定对象的字符串表示形式。
Object
  
unsubscribe(preserveDurable:Boolean = false):void
从远程目标取消订阅。
AbstractConsumer
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
  
返回订阅消息。
AbstractConsumer
  
返回取消订阅消息。
AbstractConsumer
 Inherited
用于首次连接之前自动初始化 MessageAgent 的 channelSet 属性。
MessageAgent
 Inherited
internalSend(message:IMessage, waitForClientId:Boolean = true):void
使用代理的 ChannelSet 将 Message 从 MessageAgent 发送到其目标。
MessageAgent
 Inherited
子类将覆盖此函数来实现由特定于它们的服务器会话超时行为而导致的重新身份验证。
MessageAgent
事件
 事件 摘要 定义方
 Inherited收到已发送消息的确认消息时调度。MessageAgent
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 InheritedMessageAgent 使用的基础 Channel 建立连接时调度。MessageAgent
 InheritedMessageAgent 使用的基础 Channel 断开连接时调度。MessageAgent
 InheritedMessageAgent 使用的基础 Channel 出错时调度。MessageAgent
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited发生消息错误时调度。MessageAgent
  Consumer 接收到消息时调度。AbstractConsumer
 InheritedMessageAgent 的连接属性发生更改时调度。MessageAgent
属性详细信息
_shouldBeSubscribed属性
protected var _shouldBeSubscribed:Boolean

用于指示是否应订阅此使用者的标志。

resubscribeAttempts属性 
resubscribeAttempts:int  [读写]

Consumer 在目标不可用或连接到目标失败的情况下进行的重新订阅尝试次数。如果值为 -1,则可以无限制地尝试。如果值为 0,则无法尝试重新订阅。

根据重新订阅间隔值以恒定速率尝试重新订阅。如果在 Consumer 的基础通道未连接或正在尝试连接时尝试重新订阅,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Consumer 重新订阅尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。

此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。



实现
    public function get resubscribeAttempts():int
    public function set resubscribeAttempts(value:int):void

另请参见

resubscribeInterval属性 
resubscribeInterval:int  [读写]

重新订阅尝试之间间隔的毫秒数。如果 Consumer 没有收到订阅请求的确认,则在等待指定的毫秒数后,它将尝试重新订阅。将值设置为 0 将禁用重新订阅。

根据此值以恒定速率尝试重新订阅。如果在 Consumer 的基础通道未连接或正在尝试连接时尝试重新订阅,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Consumer 重新订阅尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。

此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。



实现
    public function get resubscribeInterval():int
    public function set resubscribeInterval(value:int):void

引发
ArgumentError — 如果分配的值为负数。

另请参见

subscribed属性 
subscribed:Boolean  [只读 (read-only)]

指示 Consumer 当前是否处于订阅状态。此属性发生更改时调度 propertyChange 事件。

此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。



实现
    public function get subscribed():Boolean
timestamp属性 
timestamp:Number  [读写]

包含此 Consumer 接收到的最新消息的时间戳。在 receive() 调用中将此值传递到目标,以请求它为 Consumer 传递该时间戳之后的消息。轮询操作期间将返回时间戳值大于 timestamp 值的所有消息。将此值设置为 -1 将检索目标中所有缓存的消息。

此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。



实现
    public function get timestamp():Number
    public function set timestamp(value:Number):void
构造函数详细信息
AbstractConsumer()构造函数
public function AbstractConsumer()

构造 Consumer。


示例
function initConsumer():void
       {
           var consumer:Consumer = new Consumer();
           consumer.destination = "NASDAQ";
           consumer.selector = "operation IN ('Bid','Ask')";
           consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
           consumer.subscribe();
       }
            function messageHandler(event:MessageEvent):void
       {
           var msg:IMessage = event.message;
           var info:Object = msg.body;
           trace("-App recieved message: " + msg.toString());
       }
方法详细信息
buildSubscribeMessage()方法
protected function buildSubscribeMessage():CommandMessage

返回订阅消息。如果子类需要自定义订阅消息,则子类应覆盖此方法。

返回
CommandMessage — 订阅 CommandMessage。
buildUnsubscribeMessage()方法 
protected function buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage

返回取消订阅消息。如果子类需要自定义取消订阅消息,则子类应覆盖此方法。

参数

preserveDurable:Boolean — - 如果为 true,则将不会破坏持久 JMS subscriptions,从而使用者便可以稍后重新订阅和接收错过的消息

返回
CommandMessage — 取消订阅 CommandMessage。
disconnect()方法 
override public function disconnect():void

断开 Consumer 与其远程目标之间的连接。应在取消订阅后应用程序不再需要的 Consumer 上调用此方法。此方法不会等待未完成的网络操作完成,也不会向服务器发送取消订阅消息。调用 disconnect() 后,Consumer 将报告它处于断开连接的取消订阅状态,因为它在重新建立连接和重新订阅之前不会接收任何其它消息。如果正在尝试重新订阅,断开连接会停止自动重新订阅的尝试。

receive()方法 
public function receive(timestamp:Number = 0):void

请求在服务器上为此 Consumer 排队的所有消息。应仅对通过非实时、非轮询通道订阅的 Consumer 使用此方法。如果未订阅 Consumer,此方法为无操作。

参数

timestamp:Number (default = 0) — 不推荐使用此参数,将忽略它。

subscribe()方法 
public function subscribe(clientId:String = null):void

订阅远程目标。

参数

clientId:String (default = null) — 用于订阅的客户端 id。针对非持久 Consumer 使用 null。如果订阅是持久的,则每次 Consumer 订阅时必须提供一致的值,以便与远程目标中的正确持久订阅重新建立连接。


引发
InvalidDestinationError — 如果未设置目标。
unsubscribe()方法 
public function unsubscribe(preserveDurable:Boolean = false):void

从远程目标取消订阅。对于持久 JMS subscriptions,这将破坏 JMS 服务器上的持久订阅。

参数

preserveDurable:Boolean (default = false) — - 如果为 true,则将不会破坏持久 JMS subscriptions,从而使用者便可以稍后重新订阅和接收错过的消息

事件详细信息
message 事件
事件对象类型: mx.messaging.events.MessageEvent
属性 MessageEvent.type = mx.messaging.events.MessageEvent.MESSAGE

Consumer 接收到消息时调度。

MESSAGE 事件类型;当收到消息时调度。

此常数的值为 "message"

事件对象的属性有下列值:

属性
bubbles false
cancelable false
currentTarget 用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
message 与此事件相关联的消息。
target 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。