包 | mx.messaging |
类 | public class Channel |
继承 | Channel EventDispatcher Object |
实现 | IMXMLObject |
子类 | PollingChannel |
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
通道是基于特定协议的渠道,用于在 MessageAgent 和远程目标之间发送消息。可使用 ServerConfig.getChannel()
方法在框架内获得预配置的通道。您可以使用 new
运算符直接创建 Channel,然后将其直接添加到 ChannelSet。
通道表示到远程端点的物理连接。默认情况下,通道可以跨目标共享。这意味着定向于不同目标的客户端可以使用同一 Channel 与这些目标进行通信。
注意:仅在高级用法中使用此类。使用此类可以创建诸如现有的 RTMPChannel、AMFChannel 和 HTTPChannel 之类的自定义通道。
属性 | 由以下参数定义 | ||
---|---|---|---|
authenticated : Boolean [只读]
指示此通道是否已经过身份验证。 | Channel | ||
channelSets : Array [只读]
提供对连接到 Channel 的 ChannelSet 的访问。 | Channel | ||
connected : Boolean [只读]
指示此通道是否已与远程目标建立连接。 | Channel | ||
connectTimeout : int
提供对此通道的连接超时(以秒为单位)的访问。 | Channel | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
endpoint : String [只读]
提供对此通道的端点的访问。 | Channel | ||
failoverURIs : Array
提供对此通道可能尝试将故障转移到的端点 URI 集的访问(如果端点已群集化)。 | Channel | ||
id : String
提供对此通道的 id 的访问。 | Channel | ||
protocol : String [只读]
提供对通道使用的协议的访问。 | Channel | ||
reconnecting : Boolean [只读]
指示此通道是否正在重新连接到其它端点。 | Channel | ||
recordMessageSizes : Boolean [只读]
Channel 属性确定性能信息注入的级别 - 无论我们注入消息大小与否。 | Channel | ||
recordMessageTimes : Boolean [只读]
Channel 属性确定性能信息注入的级别 - 无论我们注入时间戳与否。 | Channel | ||
requestTimeout : int
提供对通道的默认请求超时(以秒为单位)的访问。 | Channel | ||
uri : String
提供对用于创建此通道的整个端点 URI 的 URI 的访问。 | Channel |
属性 | 由以下参数定义 | ||
---|---|---|---|
shouldBeConnected : Boolean [只读]
指示是否应将此通道连接到其端点。 | Channel |
方法 | 由以下参数定义 | ||
---|---|---|---|
构造连接到指定端点 URI 的通用 Channel 实例。 | Channel | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
子类应覆盖此方法才可应用单个通道可能需要的任何设置。 | Channel | ||
将 ChannelSet 连接到 Channel。 | Channel | ||
断开 ChannelSet 与 Channel 的连接。 | Channel | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
如果 Channel 已连接,则向服务器发送 CommandMessage 以进行注销。 | Channel | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
向其目标对象发送指定的消息。 | Channel | ||
将凭据设置为指定的值。 | Channel | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
如果存在客户端负载平衡 url,请应用之。 | Channel | ||
处理失败的内部连接并为 Channel 调度 FAULT 事件。 | Channel | ||
处理成功的内部连接并为 Channel 调度 CONNECT 事件。 | Channel | ||
通过调度 ChannelFaultEvent 处理连接超时。 | Channel | ||
处理失败的内部断开连接并为 Channel 调度 FAULT 事件。 | Channel | ||
处理成功的内部断开连接并为 Channel 调度 DISCONNECT 事件。 | Channel | ||
处理对用于管理应用程序的初始 Channel 连接的保护条件的更改。 | Channel | ||
为 Channel 的 send() 方法返回适当的 MessageResponder。 | Channel | ||
将 Channel 连接到其端点。 | Channel | ||
断开 Channel 与其端点之间的连接。 | Channel | ||
通过 Channel 发送 Message 并将响应传送到 Responder。 | Channel |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
通道连接到其端点后调度。 | Channel | |||
通道与其端点断开连接后调度。 | Channel | |||
通道出错后调度。 | Channel | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在通道从其端点接收到消息时调度。 | Channel | |||
在通道的某一属性发生更改时调度。 | Channel |
常量 | 由以下参数定义 | ||
---|---|---|---|
CONNECT_TIMEOUT_SECONDS : String = "connect-timeout-seconds" [静态] | Channel | ||
ENABLE_SMALL_MESSAGES : String = "enable-small-messages" [静态] | Channel | ||
FALSE : String = "false" [静态] | Channel | ||
RECORD_MESSAGE_SIZES : String = "record-message-sizes" [静态] | Channel | ||
RECORD_MESSAGE_TIMES : String = "record-message-times" [静态] | Channel | ||
REQUEST_TIMEOUT_SECONDS : String = "request-timeout-seconds" [静态] | Channel | ||
SERIALIZATION : String = "serialization" [静态] | Channel | ||
TRUE : String = "true" [静态] | Channel |
authenticated | 属性 |
channelSets | 属性 |
connected | 属性 |
connectTimeout | 属性 |
connectTimeout:int
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
提供对此通道的连接超时(以秒为单位)的访问。如果值为 0 或小于 0,则表示连接尝试在客户端上永远不会超时。对于配置为故障转移的通道,此值是等待建立连接所用的总时间。并不会为通道可能尝试连接到的每个故障转移 URI 重置该属性。
实现
public function get connectTimeout():int
public function set connectTimeout(value:int):void
endpoint | 属性 |
failoverURIs | 属性 |
id | 属性 |
protocol | 属性 |
reconnecting | 属性 |
recordMessageSizes | 属性 |
recordMessageTimes | 属性 |
requestTimeout | 属性 |
shouldBeConnected | 属性 |
uri | 属性 |
Channel | () | 构造函数 |
public function Channel(id:String = null, uri:String = null)
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造连接到指定端点 URI 的通用 Channel 实例。注意:不应直接构造 Channel 类型,而应创建特定于协议的子类(如 RTMPChannel 或 AMFChannel)的实例。
参数id:String (default = null ) — 此通道的 id。
| |
uri:String (default = null ) — 此通道的端点 URI。
|
applyClientLoadBalancingSettings | () | 方法 |
applySettings | () | 方法 |
connect | () | 方法 |
public final function connect(channelSet:ChannelSet):void
将 ChannelSet 连接到 Channel。如果 Channel 尚未连接到其端点,它将尝试连接。Channel 子类必须覆盖 internalConnect()
方法,并在基础连接建立后调用 connectSuccess()
方法。
参数
channelSet:ChannelSet — 要连接到 Channel 的 ChannelSet。
|
connectFailed | () | 方法 |
protected function connectFailed(event:ChannelFaultEvent):void
处理失败的内部连接并为 Channel 调度 FAULT
事件。如果 Channel 包含 failoverURI
值,它将通过按顺序尝试这些 URI 值来尝试自动重新建立连接,直到建立连接或用尽可用值。
参数
event:ChannelFaultEvent — 失败的连接的 ChannelFaultEvent。
|
connectSuccess | () | 方法 |
protected function connectSuccess():void
处理成功的内部连接并为 Channel 调度 CONNECT
事件。
connectTimeoutHandler | () | 方法 |
protected function connectTimeoutHandler(event:flash.events:TimerEvent):void
通过调度 ChannelFaultEvent 处理连接超时。子类型可以覆盖此方法以关闭当前连接尝试,但必须调用 super.connectTimeoutHandler(event)
。
参数
event:flash.events:TimerEvent — 计时器事件,用于指示已达到连接超时。
|
disconnect | () | 方法 |
public final function disconnect(channelSet:ChannelSet):void
断开 ChannelSet 与 Channel 的连接。如果 Channel 连接到它的端点,并且不存在其它连接的 ChannelSet,则它将在内部断开连接。
Channel 子类需要覆盖 internalDisconnect()
方法,并在基础连接终止时调用 disconnectSuccess()
方法。
参数
channelSet:ChannelSet — 要与 Channel 断开连接的 ChannelSet。
|
disconnectFailed | () | 方法 |
protected function disconnectFailed(event:ChannelFaultEvent):void
处理失败的内部断开连接并为 Channel 调度 FAULT
事件。
参数
event:ChannelFaultEvent — 失败的断开连接的 ChannelFaultEvent。
|
disconnectSuccess | () | 方法 |
flexClientWaitHandler | () | 方法 |
protected function flexClientWaitHandler(event:PropertyChangeEvent):void
处理对用于管理应用程序的初始 Channel 连接的保护条件的更改。如果调用了此方法,则表明此 Channel 正在等待尝试进行连接。
参数
event:PropertyChangeEvent — 由 FlexClient singleton 调度的 PropertyChangeEvent。
|
getMessageResponder | () | 方法 |
protected function getMessageResponder(agent:MessageAgent, message:IMessage):MessageResponder
为 Channel 的 send()
方法返回适当的 MessageResponder。必须被覆盖。
参数
agent:MessageAgent — 用于发送消息的 MessageAgent。
| |
message:IMessage — 要发送的消息。
|
MessageResponder — 用于处理结果或错误的 MessageResponder。
|
引发
IllegalOperationError — 如果 Channel 子类不覆盖此方法。
|
internalConnect | () | 方法 |
protected function internalConnect():void
将 Channel 连接到其端点。必须被覆盖。
internalDisconnect | () | 方法 |
internalSend | () | 方法 |
protected function internalSend(messageResponder:MessageResponder):void
通过 Channel 发送 Message 并将响应传送到 Responder。必须被覆盖。
参数
messageResponder:MessageResponder — 用于处理响应的 MessageResponder。
|
logout | () | 方法 |
public function logout(agent:MessageAgent):void
如果 Channel 已连接,则向服务器发送 CommandMessage 以进行注销。当前凭据被清除。
参数
agent:MessageAgent — 要注销的 MessageAgent。
|
send | () | 方法 |
public function send(agent:MessageAgent, message:IMessage):void
向其目标对象发送指定的消息。子类必须覆盖 internalSend()
方法才能实际进行发送。
参数
agent:MessageAgent — 正在发送消息的 MessageAgent。
| |
message:IMessage — 要发送的消息。
|
引发
InvalidDestinationError — 如果 MessageAgent 或消息都未指定对象,
|
setCredentials | () | 方法 |
public function setCredentials(credentials:String, agent:MessageAgent = null, charset:String = null):void
将凭据设置为指定的值。如果凭据为非空,并且 Channel 已连接,则此方法还会向服务器发送 CommandMessage 以使用这些凭据进行登录。
参数
credentials:String — 凭据字符串。
| |
agent:MessageAgent (default = null ) — 要登录的 MessageAgent,它将处理登录结果。
| |
charset:String (default = null ) — 对凭据进行编码时使用的字符集编码。默认值为 null,表示旧字符集 ISO-Latin-1。
|
引发
IllegalOperationError — 适用于两种情况:已设置凭据并且正在对远程目标进行身份验证;已经过身份验证,但指定的凭据与当前已经过身份验证的凭据不匹配。
|
channelConnect | 事件 |
mx.messaging.events.ChannelEvent
属性 ChannelEvent.type =
mx.messaging.events.ChannelEvent.CONNECT
通道连接到其端点后调度。
无论何时通道试图连接到远程目标出现问题,通道及其子类都会发出 Channel.Connect.Failed 代码。在通道已经连接但从其基础 NetConnection 获取 Call.Failed 代码之后,AMFChannel 对象就会发出 Channel.Call.Failed 代码。
CONNECT 事件类型;指示 Channel 已连接到其端点。此常量的值为 "channelConnect"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
channel | 生成此事件的通道。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
reconnecting | 指示是否正在重新连接生成此事件的通道。 |
rejected | 指示是否已拒绝生成此事件的通道。如果通道因处于不活动状态而断开连接,并且不会尝试故障转移或连接到备用通道,则此属性将为 true。 |
channelDisconnect | 事件 |
mx.messaging.events.ChannelEvent
属性 ChannelEvent.type =
mx.messaging.events.ChannelEvent.DISCONNECT
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
通道与其端点断开连接后调度。
DISCONNECT 事件类型;指示 Channel 已与其端点断开连接。此常量的值为 "channelDisconnect"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
channel | 生成此事件的通道。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
reconnecting | 指示是否正在重新连接生成此事件的通道。 |
rejected | 指示是否已拒绝生成此事件的通道。如果通道因处于不活动状态而断开连接,并且不会尝试故障转移或连接到备用通道,则此属性将为 true。 |
channelFault | 事件 |
mx.messaging.events.ChannelFaultEvent
属性 ChannelFaultEvent.type =
mx.messaging.events.ChannelFaultEvent.FAULT
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
通道出错后调度。
FAULT 事件类型;指示发生错误的 Channel。此常量的值为 "channelFault"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
channel | 生成此事件的 Channel。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
faultCode | 提供有关此失败的特定于目标的详细信息。 |
faultDetail | 提供对此失败特定于目标的原因的访问权限。 |
faultString | 如果通道本身未引发失败,则提供对此失败根本原因的访问权限。 |
reconnecting | 指示是否正在重新连接生成此事件的通道。 |
rootCause | 如果通道本身未引发失败,则提供对此失败根本原因的访问权限。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
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 |
在通道从其端点接收到消息时调度。
MESSAGE 事件类型;当收到消息时调度。此常量的值为 "message"
。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
message | 与此事件相关联的消息。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
propertyChange | 事件 |
mx.events.PropertyChangeEvent
属性 PropertyChangeEvent.type =
mx.events.PropertyChangeEvent.PROPERTY_CHANGE
语言版本: | ActionScript 3.0 |
产品版本: | BlazeDS 4, Adobe Digital Enterprise Platform Data Services for Java EE 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
在通道的某一属性发生更改时调度。
PropertyChangeEvent.PROPERTY_CHANGE
常量可为 PropertyChange
事件定义事件对象的 type
属性的值。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | 由构造函数确定;默认值为 false。 |
cancelable | 由构造函数确定;默认值为 false。 |
kind | 更改类型;PropertyChangeEventKind.UPDATE 或 PropertyChangeEventKind.DELETE。 |
oldValue | 原始属性值。 |
newValue | 新属性值(如果有)。 |
property | 更改的属性。 |
source | 包含更改属性的对象。 |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
CONNECT_TIMEOUT_SECONDS | 常量 |
protected static const CONNECT_TIMEOUT_SECONDS:String = "connect-timeout-seconds"
ENABLE_SMALL_MESSAGES | 常量 |
protected static const ENABLE_SMALL_MESSAGES:String = "enable-small-messages"
FALSE | 常量 |
protected static const FALSE:String = "false"
RECORD_MESSAGE_SIZES | 常量 |
protected static const RECORD_MESSAGE_SIZES:String = "record-message-sizes"
RECORD_MESSAGE_TIMES | 常量 |
protected static const RECORD_MESSAGE_TIMES:String = "record-message-times"
REQUEST_TIMEOUT_SECONDS | 常量 |
protected static const REQUEST_TIMEOUT_SECONDS:String = "request-timeout-seconds"
SERIALIZATION | 常量 |
protected static const SERIALIZATION:String = "serialization"
TRUE | 常量 |
protected static const TRUE:String = "true"
Tue Jun 12 2018, 11:04 AM Z