包 | mx.messaging |
类 | public class ChannelSet |
继承 | ChannelSet EventDispatcher Object |
默认 MXML 属性channels
属性 | 定义方 | ||
---|---|---|---|
authenticated : Boolean [只读 (read-only)] 指示 ChannelSet 是否包含已成功对其端点进行身份验证的基础 Channel。 | ChannelSet | ||
channelIds : Array [只读 (read-only)] ChannelSet 使用的 Channel 的 id。 | ChannelSet | ||
channels : Array 提供对 ChannelSet 中 Channel 的访问。 | ChannelSet | ||
clustered : Boolean 指示 ChannelSet 是否面向群集化的目标。 | ChannelSet | ||
connected : Boolean [只读 (read-only)] 指示 ChannelSet 是否已连接。 | ChannelSet | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentChannel : Channel [只读 (read-only)] 返回 ChannelSet 的当前 Channel。 | ChannelSet | ||
initialDestinationId : String 通过此属性可以访问用此 ChannelSet 访问的初始目标。 | ChannelSet | ||
messageAgents : Array [只读 (read-only)] 提供对使用此 ChannelSet 的一组 MessageAgent 的访问。 | ChannelSet | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object |
方法 | 定义方 | ||
---|---|---|---|
构造 ChannelSet。 | ChannelSet | ||
将 Channel 添加到 ChannelSet。 | ChannelSet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
处理 CONNECT ChannelEvent 并重新调度该事件。 | ChannelSet | ||
处理 DISCONNECT ChannelEvent 并重新调度该事件。 | ChannelSet | ||
处理 ChannelFaultEvent 并重新调度该事件。 | ChannelSet | ||
将 MessageAgent 联接到 ChannelSet。 | ChannelSet | ||
断开特定 MessageAgent 与 ChannelSet 之间的连接。 | ChannelSet | ||
与所有相关的 MessageAgent 断开连接并与已连接的任何基础 Channel 断开连接。 | ChannelSet | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
针对使用提供的凭据的服务器对 ChannelSet 进行身份验证。 | ChannelSet | ||
从服务器注销 ChannelSet。 | ChannelSet | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
将 Channel 从 ChannelSet 中删除。 | ChannelSet | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
通过当前连接的 Channel 发送 MessageAgent 中的消息。 | ChannelSet | ||
存储这些凭据并将它们传送到每个已连接的通道。 | ChannelSet | ||
设置循环操作动态属性的可用性。 | Object | ||
返回包含 ChannelSet 中 Channel 的 id 的 String。 | ChannelSet | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
ChannelSet 中的某一 Channel 连接到其端点后调度。 | ChannelSet | |||
ChannelSet 中的某一 Channel 与其端点断开连接后调度。 | ChannelSet | |||
ChannelSet 中的某一 Channel 出错后调度。 | ChannelSet | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
登录或注销调用失败时,将调度错误事件。 | ChannelSet | |||
在 ChannelSet 的某一属性发生更改时调度。 | ChannelSet | |||
登录或注销调用成功返回时,将调度结果事件。 | ChannelSet |
authenticated | 属性 |
authenticated:Boolean
[只读 (read-only)] 指示 ChannelSet 是否包含已成功对其端点进行身份验证的基础 Channel。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
public function get authenticated():Boolean
channelIds | 属性 |
channelIds:Array
[只读 (read-only)] ChannelSet 使用的 Channel 的 id。
public function get channelIds():Array
channels | 属性 |
channels:Array
[读写]
提供对 ChannelSet 中 Channel 的访问。此属性可用于立即分配一组通道或通过 addChannel() 直接将这些通道逐个添加到 ChannelSet。如果此 ChannelSet 为 configured
,将自动创建各个通道并根据需要将其添加到此属性。
public function get channels():Array
public function set channels(value:Array):void
IllegalOperationError —
如果 ChannelSet 为 configured ,将不允许为此属性分配值。
|
clustered | 属性 |
clustered:Boolean
[读写] 指示 ChannelSet 是否面向群集化的目标。如果为 true,则连接成功后,ChannelSet 将为所有群集化端点的目标查询其 Channel,并为它们分配 failoverURI。Channel id 用于将 failoverURI 分配给合适的 Channel 实例,因此这需要 ChannelSet 中的所有 Channel 的 id 为非 null,否则,将此属性设置为 true 时会引发错误。如果 ChannelSet 未使用客户端上的 url 负载平衡,则不会将此属性设置为 true。
public function get clustered():Boolean
public function set clustered(value:Boolean):void
connected | 属性 |
connected:Boolean
[只读 (read-only)] 指示 ChannelSet 是否已连接。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange
事件。
public function get connected():Boolean
currentChannel | 属性 |
currentChannel:Channel
[只读 (read-only)] 返回 ChannelSet 的当前 Channel。
public function get currentChannel():Channel
initialDestinationId | 属性 |
initialDestinationId:String
[读写] 通过此属性可以访问用此 ChannelSet 访问的初始目标。clustered 属性为 ture 时,此值用于为目标的已配置通道请求可用的故障转移 URI。
public function get initialDestinationId():String
public function set initialDestinationId(value:String):void
messageAgents | 属性 |
messageAgents:Array
[只读 (read-only)] 提供对使用此 ChannelSet 的一组 MessageAgent 的访问。
public function get messageAgents():Array
ChannelSet | () | 构造函数 |
public function ChannelSet(channelIds:Array = null, clusteredWithURLLoadBalancing:Boolean = false)
构造 ChannelSet。如果提供 channelIds
参数,ChannelSet 将自动使用通过 ServerConfig.getChannel()
获得的已配置 Channel 来达到目标。不允许尝试手动将 Channel 分配给使用已配置 Channel 的 ChannelSet。
如果未提供 channelIds
参数或该参数为 null,必须手动创建 Channel 并将其添加到 ChannelSet,才能连接和发送消息。
如果使用 url 负载平衡(其中每个服务器声明唯一的 RTMP 或 HTTP URL,并且客户端将故障从一个 URL 转移到另一个 URL)群集化 ChannelSet,则当 ChannelSet 中的 Channel 连接首次成功时,ChannelSet 将自动为所有成员 Channel 发出对群集中的所有端点的请求,并将这些故障转移 URL 分别分配给各个 Channel。这允许 ChannelSet 中的各个 Channel 单独进行故障转移,并且当特定 Channel 的故障转移选项用尽时,ChannelSet 将进入到该集中的下一个 Channel 以尝试重新建立连接。
无论 clustering 为何,如果 Channel 无法连接或连接松动,ChannelSet 都将进入到它的下一个可用 Channel 并尝试重新建立连接。这允许 ChannelSet 在使用不同协议、端口等的 Channel 中进行搜索,以找出一个可以成功连接到其端口的 Channel。
参数channelIds:Array (default = null ) — 从 ServerConfig 获得的已配置 Channel 的 id,供此 ChannelSet 使用。如果为 null,必须手动将 Channel 添加到 ChannelSet。 | |
clusteredWithURLLoadBalancing:Boolean (default = false ) — 如果使用 url 负载平衡群集化 ChannelSet 中的 Channel,则为 true。 |
addChannel | () | 方法 |
public function addChannel(channel:Channel):void
将 Channel 添加到 ChannelSet。如果 ChannelSet 面向群集化的目标,则无法将 id 为 null 的 Channel 添加到 ChannelSet。
参数
channel:Channel — 要添加的 Channel。 |
IllegalOperationError —
如果 ChannelSet 为 configured ,将不支持添加 Channel。如果 ChannelSet 的 clustered 属性为 true ,但 Channel 的 id 为 null,也会引发此错误。
|
channelConnectHandler | () | 方法 |
public function channelConnectHandler(event:ChannelEvent):void
处理 CONNECT ChannelEvent 并重新调度该事件。
参数
event:ChannelEvent — ChannelEvent。 |
channelDisconnectHandler | () | 方法 |
public function channelDisconnectHandler(event:ChannelEvent):void
处理 DISCONNECT ChannelEvent 并重新调度该事件。
参数
event:ChannelEvent — ChannelEvent。 |
channelFaultHandler | () | 方法 |
public function channelFaultHandler(event:ChannelFaultEvent):void
处理 ChannelFaultEvent 并重新调度该事件。
参数
event:ChannelFaultEvent — ChannelFaultEvent。 |
connect | () | 方法 |
public function connect(agent:MessageAgent):void
将 MessageAgent 联接到 ChannelSet。连接后,代理便可以使用 ChannelSet 发送消息。
参数
agent:MessageAgent — 要连接的 MessageAgent。 |
disconnect | () | 方法 |
public function disconnect(agent:MessageAgent):void
断开特定 MessageAgent 与 ChannelSet 之间的连接。如果这是使用 ChannelSet 的最后一个 MessageAgent,并且该集中的当前 Channel 处于已连接状态,则该 Channel 将与服务器从物理上断开连接。
参数
agent:MessageAgent — 要断开连接的 MessageAgent。 |
disconnectAll | () | 方法 |
public function disconnectAll():void
与所有相关的 MessageAgent 断开连接并与已连接的任何基础 Channel 断开连接。disconnect(MessageAgent)
由特定服务组件的断开连接实现调用,此方法与之不同,它为关闭客户端和服务器之间的连接提供了一个方便点。
login | () | 方法 |
public function login(username:String, password:String, charset:String = null):AsyncToken
针对使用提供的凭据的服务器对 ChannelSet 进行身份验证。与 Channel 和 ChannelSet 上的其它操作不同,此操作将返回客户端代码可能将响应方添加到的 AsyncToken,以便直接处理成功或失败。如果调用此方法时 ChannelSet 尚未连接到服务器,它将触发连接尝试,如果连接尝试成功,则会向服务器发送登录命令。一次只能挂起一个登录或注销操作,如果调用发生重叠,则将生成 IllegalOperationError。如果在 ChannelSet 已经过身份验证时调用登录,也会生成 IllegalOperationError。
参数
username:String — 用户名。 | |
password:String — 密码。 | |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。其它受支持的字符集仅有“UTF-8”。 |
AsyncToken — 返回客户端代码为了直接处理成功或失败而可能向其添加 responder 的标记。 |
IllegalOperationError — 有两种情况:ChannelSet 已经过身份验证,或者登录或注销操作当前正在进行中。 |
logout | () | 方法 |
public function logout(agent:MessageAgent = null):AsyncToken
从服务器注销 ChannelSet。与 Channel 和 ChannelSet 上的其它操作不同,此操作将返回客户端代码可能将响应方添加到的 AsyncToken,以便直接处理成功或失败。如果注销成功,将为 ChannelSet 及其 Channel 清除所有为了用于自动重新连接而进行缓存的凭据,并且将它们已经过身份验证的状态设置为 false。如果调用此方法时 ChannelSet 尚未连接到服务器,它将触发连接尝试,如果连接尝试成功,则会向服务器发送注销命令。
MessageAgent 参数旨在支持旧的注销行为,并且调用此方法的客户端代码将不会传递 MessageAgent 引用。仅调用 logout()
不会传递任何参数。
服务组件也从它们的 logout()
方法调用此方法,并且这些组件在注销时将 MessageAgent 引用传递给此方法。此参数的出现可触发执行旧的注销行为,该行为与以上所述的新行为不同。如果客户端已连接并且已经过身份验证,则旧的行为仅向服务器发送注销请求。如果不满足这些条件,此方法的旧行为除仅清除所有为用于自动重新连接而进行缓存的凭据之外,不会进行任何其它操作。
参数
agent:MessageAgent (default = null ) — Legacy 参数。启动注销的 MessageAgent。 |
AsyncToken — 返回客户端代码为了直接处理成功或失败而可能向其添加 responder 的标记。 |
IllegalOperationError — 如果登录或注销操作当前正在进行中。 |
removeChannel | () | 方法 |
public function removeChannel(channel:Channel):void
将 Channel 从 ChannelSet 中删除。如果要删除的 Channel 当前处于已连接状态并由 ChannelSet 使用,则它在被删除的同时也就断开了连接。
参数
channel:Channel — 要删除的 Channel。 |
IllegalOperationError —
如果 ChannelSet 为 configured ,则不支持删除 Channel。
|
send | () | 方法 |
public function send(agent:MessageAgent, message:IMessage):void
通过当前连接的 Channel 发送 MessageAgent 中的消息。
参数
agent:MessageAgent — 用于发送消息的 MessageAgent。 | |
message:IMessage — 要发送的 Message。 |
NoChannelAvailableError — 如果 ChannelSet 不包含可供使用的内部 Channel。 |
setCredentials | () | 方法 |
public function setCredentials(credentials:String, agent:MessageAgent, charset:String = null):void
存储这些凭据并将它们传送到每个已连接的通道。
参数
credentials:String — MessageAgent 的凭据。 | |
agent:MessageAgent — 设置凭据的 MessageAgent。 | |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧编码为 ISO-Latin-1。 |
IllegalOperationError — 适用于两种情况:已设置凭据并且正在对远程目标进行身份验证;已经过身份验证,但指定的凭据与当前已经过身份验证的凭据不匹配。 |
toString | () | 方法 |
override public function toString():String
返回包含 ChannelSet 中 Channel 的 id 的 String。
返回String — ChannelSet 的字符串表示形式。 |
channelConnect | 事件 |
mx.messaging.events.ChannelEvent
mx.messaging.events.ChannelEvent.CONNECT
ChannelSet 中的某一 Channel 连接到其端点后调度。
CONNECT 事件类型;指示 Channel 已连接到其端点。
此常数的值为 "channelConnect"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| false |
channel
| 生成此事件的通道。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
reconnecting
| 指示是否正在重新连接生成此事件的通道。 |
rejected
| 指示生成此事件的通道是否已被拒绝。如果通道因处于不活动状态而断开连接,并且不会尝试故障转移或连接到备用通道,则此属性将为 true。 |
channelDisconnect | 事件 |
mx.messaging.events.ChannelEvent
mx.messaging.events.ChannelEvent.DISCONNECT
ChannelSet 中的某一 Channel 与其端点断开连接后调度。
DISCONNECT 事件类型;指示 Channel 已与其端点断开连接。
此常数的值为 "channelDisconnect"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| false |
channel
| 生成此事件的通道。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
reconnecting
| 指示是否正在重新连接生成此事件的通道。 |
rejected
| 指示生成此事件的通道是否已被拒绝。如果通道因处于不活动状态而断开连接,并且不会尝试故障转移或连接到备用通道,则此属性将为 true。 |
channelFault | 事件 |
mx.messaging.events.ChannelFaultEvent
mx.messaging.events.ChannelFaultEvent.FAULT
ChannelSet 中的某一 Channel 出错后调度。
FAULT 事件类型;指示发生错误的 Channel。
此常数的值为 "channelFault"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| false |
channel
| 生成此事件的 Channel。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
faultCode
| 提供有关此失败的特定于目标的详细信息。 |
faultDetail
| 提供对此失败特定于目标的原因的访问权限。 |
faultString
| 如果通道本身未引发失败,则提供对此失败根本原因的访问权限。 |
reconnecting
| 指示是否正在重新连接生成此事件的通道。 |
rootCause
| 如果通道本身未引发失败,则提供对此失败根本原因的访问权限。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
fault | 事件 |
mx.rpc.events.FaultEvent
mx.rpc.events.FaultEvent.FAULT
登录或注销调用失败时,将调度错误事件。
FAULT 事件类型。事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| true,通过关联标记的 responder.fault 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
fault
| 包含导致此事件原因的详细信息的 Fault 对象。 |
message
| 与此事件相关联的 Message。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
token
| 表示方法调用的标记。用于异步完成标记模式。 |
propertyChange | 事件 |
mx.events.PropertyChangeEvent
mx.events.PropertyChangeEvent.PROPERTY_CHANGE
在 ChannelSet 的某一属性发生更改时调度。
PropertyChangeEvent.PROPERTY_CHANGE
常数可为 PropertyChange
事件定义事件对象的 type
属性的值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| 由构造函数确定;默认值为 false。 |
cancelable
| 由构造函数确定;默认值为 false。 |
kind
| 更改类型;PropertyChangeEventKind.UPDATE 或 PropertyChangeEventKind.DELETE。 |
oldValue
| 原始属性值。 |
newValue
| 新属性值(如果有)。 |
property
| 更改的属性。 |
source
| 包含更改属性的对象。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
result | 事件 |
mx.rpc.events.ResultEvent
mx.rpc.events.ResultEvent.RESULT
登录或注销调用成功返回时,将调度结果事件。
RESULT 事件类型。事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles
| false |
cancelable
| true,通过关联标记的 responder.result 方法调用 preventDefault() 将防止服务或操作调度此事件。 |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
message
| 与此事件相关联的 Message。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
result
| RPC 调用返回的结果。 |
token
| 表示对方法单独调用的标记。用于异步完成标记模式。 |