包 | mx.messaging |
类 | public class MultiTopicConsumer |
继承 | MultiTopicConsumer AbstractConsumer MessageAgent EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
与常规 Consumer 类似,MultiTopicConsumer 发送生成 MessageAckEvent 或 MessageFaultEvent 的订阅和取消订阅消息,生成内容取决于操作是否成功。订阅后,MultiTopicConsumer 便会为它接收到的每条消息调度 MessageEvent。
MXML 语法隐藏 MXML 语法The <mx:MultiTopicConsumer> tag has these properties:
<mx:Consumer Properties subscriptions=""an empty ArrayCollection of SubscriptionInfo objects" resubscribeAttempts="5" resubscribeInterval="5000" timestamp="No default." />
属性 | 由以下参数定义 | ||
---|---|---|---|
authenticated : Boolean [只读]
指示此 MessageAgent 是否使用指向其目标的经过身份验证的连接。 | MessageAgent | ||
channelSet : ChannelSet
提供对 MessageAgent 使用的 ChannelSet 的访问。 | MessageAgent | ||
clientId : String [只读]
提供对 MessageAgent 的客户端 id 的访问。 | MessageAgent | ||
connected : Boolean [只读]
指示此 MessageAgent 当前是否已通过其 ChannelSet 连接到了其目标。 | MessageAgent | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
destination : String
提供对 MessageAgent 的目标的访问。 | MessageAgent | ||
maxFrequency : uint
确定 Consumer 希望每秒钟收到的消息的最大数量。 | AbstractConsumer | ||
requestTimeout : int
提供对已发送消息的请求超时(以秒为单位)的访问。 | MessageAgent | ||
resubscribeAttempts : int
Consumer 在目标不可用或连接到目标失败的情况下进行的重新订阅尝试次数。 | AbstractConsumer | ||
resubscribeInterval : int
重新订阅尝试之间间隔的毫秒数。 | AbstractConsumer | ||
subscribed : Boolean [只读]
指示 Consumer 当前是否处于订阅状态。 | AbstractConsumer | ||
subscriptions : ArrayCollection
存储 SubscriptionInfo 对象的 Array。 | MultiTopicConsumer | ||
timestamp : Number
包含此 Consumer 接收到的最新消息的时间戳。 | AbstractConsumer |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造函数。 | MultiTopicConsumer | ||
收到已发送消息的结果时由 MessageResponder 调用。 | MessageAgent | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
这是添加新订阅的简便方法。 | MultiTopicConsumer | ||
处理 CONNECT ChannelEvent。 | MessageAgent | ||
处理 DISCONNECT ChannelEvent。 | MessageAgent | ||
处理 ChannelFaultEvent。 | MessageAgent | ||
[覆盖]
断开 Consumer 与其远程目标之间的连接。 | AbstractConsumer | ||
将事件调度到事件流中。 | EventDispatcher | ||
收到已发送消息的错误时由 MessageResponder 调用。 | MessageAgent | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
如果存在传入消息的任何挂起的请求,则返回 true。 | MessageAgent | ||
在创建了实现对象、并分配了标签上指定的所有属性后调用。 | MessageAgent | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
从其远程目标注销 MessageAgent。 | MessageAgent | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
请求在服务器上为此 Consumer 排队的所有消息。 | AbstractConsumer | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
此方法可删除 subtopic 和选择器指定的订阅。 | MultiTopicConsumer | ||
设置 MessageAgent 用于对目标进行身份验证的凭据。 | MessageAgent | ||
设置循环操作动态属性的可用性。 | Object | ||
设置将传递到远程目标以对次系统进行身份验证的远程凭据。 | MessageAgent | ||
订阅远程目标。 | AbstractConsumer | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
从远程目标取消订阅。 | AbstractConsumer | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
[覆盖]
返回订阅消息。 | MultiTopicConsumer | ||
[覆盖]
返回取消订阅消息。 | MultiTopicConsumer | ||
处理服务器上的身份验证错误。 | MessageAgent | ||
用于首次连接之前自动初始化 MessageAgent 的 channelSet 属性。 | MessageAgent | ||
使用代理的 ChannelSet 将 Message 从 MessageAgent 发送到其目标。 | MessageAgent | ||
由于特定于子类的服务器会话超时行为,子类将覆盖此函数实现重新验证。 | MessageAgent |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
收到已发送消息的确认消息时调度。 | MessageAgent | |||
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
MessageAgent 使用的基础 Channel 建立连接时调度。 | MessageAgent | |||
MessageAgent 使用的基础 Channel 断开连接时调度。 | MessageAgent | |||
MessageAgent 使用的基础 Channel 出错时调度。 | MessageAgent | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
发生消息错误时调度。 | MessageAgent | |||
Consumer 接收到消息时调度。 | MultiTopicConsumer | |||
MessageAgent 的连接属性发生更改时调度。 | MessageAgent |
subscriptions | 属性 |
subscriptions:ArrayCollection
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
存储 SubscriptionInfo 对象的 Array。每个订阅都包含一个 subtopic 和一个选择器,其中两者均可以为 null。subtopic 为非 null 的订阅将仅允许订阅通过该 subtopic 传递的消息。如果 subtopic 为 null,它将使用无 subtopic 的选择器。如果选择器和 subtopic 均为 null,则订阅将接收面向无 subtopic 的目标的任何消息。subtopic 可以包含通配符规范。
调用 subscribe()
方法之前,可以设置此属性,且不会产生任何副作用。MultiTopicConsumer 订阅其目标后,更改此值会产生以下副作用:更新 MultiTopicConsumer 的订阅以包含所有新的 subscriptions 并删除从 ArrayCollection 中删除的所有 subscriptions。
远程目标必须了解选择器表达式的值。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
实现
public function get subscriptions():ArrayCollection
public function set subscriptions(value:ArrayCollection):void
MultiTopicConsumer | () | 构造函数 |
public function MultiTopicConsumer()
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
示例 ( 如何使用本示例 )
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()); }
addSubscription | () | 方法 |
public function addSubscription(subtopic:String = null, selector:String = null, maxFrequency:uint = 0):void
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
这是添加新订阅的简便方法。它只创建新 SubscriptionInfo 对象并将其添加到 subscriptions 属性。要调用此方法,您需要为新订阅提供 subtopic 以及选择器字符串。如果 subtopic 为 null,则订阅将应用于制造者中未设置 subtopic 的消息。如果选择器字符串为 null,则已发送的与 subtopic 字符串匹配的所有消息都将由此使用者接收。
参数
subtopic:String (default = null ) — 新订阅的 subtopic。
| |
selector:String (default = null ) — 新订阅的选择器。
| |
maxFrequency:uint (default = 0 ) — Consumer 希望每秒钟收到订阅消息的最大数量。请注意,此值将覆盖 Consumer 范围的 maxFrequency。
|
buildSubscribeMessage | () | 方法 |
override protected function buildSubscribeMessage():CommandMessage
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回订阅消息。
返回CommandMessage — 订阅 CommandMessage。
|
buildUnsubscribeMessage | () | 方法 |
override protected function buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回取消订阅消息。
参数
preserveDurable:Boolean — 如果为 true,则不会破坏持久 JMS 订阅,以使使用者稍后可以重新订阅和接收错过的消息。
|
CommandMessage — 取消订阅 CommandMessage。
|
removeSubscription | () | 方法 |
public function removeSubscription(subtopic:String = null, selector:String = null):void
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
此方法可删除 subtopic 和选择器指定的订阅。
参数
subtopic:String (default = null ) — 订阅的 subtopic。
| |
selector:String (default = null ) — 订阅的选择器。
|
message | 事件 |
mx.messaging.events.MessageEvent
属性 MessageEvent.type =
mx.messaging.events.MessageEvent.MESSAGE
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
Consumer 接收到消息时调度。
MESSAGE 事件类型;当收到消息时调度。此常量的值为 "message"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
message | 与此事件相关联的消息。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
Tue Jun 12 2018, 11:04 AM Z