包 | mx.messaging |
类 | public class Channel |
继承 | Channel ![]() ![]() |
实现 | 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 | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
endpoint : String [只读]
提供对此通道的端点的访问。 | Channel | ||
failoverURIs : Array
提供对此通道可能尝试将故障转移到的端点 URI 集的访问(如果端点已群集化)。 | Channel | ||
id : String
提供对此通道的 id 的访问。 | Channel | ||
protocol : String [只读]
提供对通道使用的协议的访问。 | Channel | ||
reconnecting : Boolean [只读]
指示此通道是否正在重新连接到其它端点。 | Channel | ||
requestTimeout : int
提供对通道的默认请求超时(以秒为单位)的访问。 | Channel | ||
uri : String
提供对用于创建此通道的整个端点 URI 的 URI 的访问。 | Channel |
属性 | 由以下参数定义 | ||
---|---|---|---|
shouldBeConnected : Boolean [只读]
指示是否应将此通道连接到其端点。 | 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 | |||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher |
常量 | 由以下参数定义 | ||
---|---|---|---|
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 | 属性 |
endpoint | 属性 |
failoverURIs | 属性 |
id | 属性 |
protocol | 属性 |
reconnecting | 属性 |
requestTimeout | 属性 |
shouldBeConnected | 属性 |
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。 |
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