(Flex Data Services のみ)
パッケージmx.messaging
public class Channel
継承Channel Inheritance EventDispatcher Inheritance Object
SubclassesPollingChannel

Channel クラスは、メッセージングシステム内のすべてのチャンネルで拡張する必要がある基本メッセージチャンネルクラスです。

チャンネルは、MessageAgents とリモート宛先間で送信されるメッセージにとって、特定プロトコルベースのパイプとなります。ServerConfig.getChannel() メソッドで、フレームワーク内の設定済みチャンネルが取得されます。new 演算子を使って直接チャンネルを作成し、ChannelSet に直接追加することもできます。

チャンネルは、リモートエンドポイントへの物理接続を表します。デフォルトでは、複数の宛先の間でチャンネルが共有されます。つまり、複数の宛先をターゲットとしているクライアントでは、それらの宛先との通信に同一のチャンネルを使用することがあります。

メモ: このクラスは高度な使用のみを目的としています。既存の RTMPChannel、AMFChannel、および HTTPChannel などのカスタムチャンネルを作成する場合に、このクラスを使用します。



パブリックプロパティ
 プロパティ定義
  channelSets : Array
[read-only] チャンネルに接続された ChannelSet へのアクセスを提供します。
Channel
  connected : Boolean
[read-only] このチャンネルがリモート宛先との接続を確立しているかどうかを示します。
Channel
  connectTimeout : int
チャンネルに対する接続タイムアウト時間 (秒単位) へのアクセスを提供します。
Channel
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  endpoint : String
[read-only] このチャンネルのエンドポイントへのアクセスを提供します。
Channel
  failoverURIs : Array
エンドポイントがクラスタ化されている場合に、このチャンネルがフェイルオーバーを試行できるエンドポイント URI のセットへのアクセスを提供します。
Channel
  id : String
[read-only] このチャンネルの ID へのアクセスを提供します。
Channel
  protocol : String
[read-only] チャンネルが使用するプロトコルへのアクセスを提供します。
Channel
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  reconnecting : Boolean
[read-only] このチャンネルが代替エンドポイントへの再接続を実行中であるかどうかを示します。
Channel
  requestTimeout : int
チャンネルに対するデフォルト要求タイムアウト (秒単位) へのアクセスを提供します。
Channel
  uri : String
[read-only] このチャンネルに対するエンドポイント URI 全体を作成するのに使用される URI へのアクセスを提供します。
Channel
パブリックメソッド
 メソッド定義
  Channel(id:String, uri:String)
指定されたエンドポイント URI に接続する汎用チャンネルのインスタンスを作成します。
Channel
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  applySettings(settings:XML):void
個々のチャンネルに必要な設定を適用するには常に、サブクラスでこのメソッドをオーバーライドする必要があります。
Channel
  connect(channelSet:ChannelSet):void
ChannelSet をチャンネルに接続します。
Channel
  disconnect(channelSet:ChannelSet):void
ChannelSet をチャンネルから切断します。
Channel
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  logout(agent:MessageAgent):void
チャンネルが接続されていれば、CommandMessage をサーバーに送信してログアウトします。
Channel
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  send(agent:MessageAgent, message:IMessage):void
指定されたメッセージをターゲットの宛先に送信します。
Channel
  setCredentials(credentials:String, agent:MessageAgent = null):void
資格情報を指定の値に設定します。
Channel
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
Protectedメソッド
 メソッド定義
  connectFailed(event:ChannelFaultEvent):void
失敗した内部接続を処理し、チャンネルの FAULT イベントを送出します。
Channel
  connectSuccess():void
成功した内部接続を処理し、チャンネルの CONNECT イベントを送出します。
Channel
  connectTimeoutHandler(event:TimerEvent):void
ChannelFaultEvent を送出して接続タイムアウトを処理します。
Channel
  disconnectFailed(event:ChannelFaultEvent):void
失敗した内部切断を処理し、チャンネルの FAULT イベントを送出します。
Channel
  disconnectSuccess(rejected:Boolean = false):void
成功した内部切断を処理して、チャンネルの DISCONNECT イベントを送出します。
Channel
  getMessageResponder(agent:MessageAgent, message:IMessage):MessageResponder
チャンネルの send() メソッドに適切な MessageResponder を返します。
Channel
  internalConnect():void
チャンネルをエンドポイントに接続します。
Channel
  internalDisconnect(rejected:Boolean = false):void
チャンネルをエンドポイントから切断します。
Channel
  internalSend(messageResponder:MessageResponder):void
チャンネルを通じてメッセージを送信し、応答を応答側に転送します。
Channel
イベント
 イベント一覧定義
  channelConnect チャンネルがエンドポイントから切断された後で送出されます。Channel
  channelDisconnect チャンネルがエンドポイントから切断された後で送出されます。Channel
  channelFault チャンネルに障害が発生した後に送出されます。Channel
  message チャンネルがエンドポイントからメッセージを受信したときに送出されます。Channel
  propertyChange チャンネルのプロパティが変更されたときに送出されます。Channel
プロパティの詳細
channelSetsプロパティ
channelSets:Array  [read-only]

チャンネルに接続された ChannelSet へのアクセスを提供します。

実装
    public function get channelSets():Array
connectedプロパティ 
connected:Boolean  [read-only]

このチャンネルがリモート宛先との接続を確立しているかどうかを示します。

このプロパティはデータバインディングのソースとして使用できます。

実装
    public function get connected():Boolean
connectTimeoutプロパティ 
connectTimeout:int  [read-write]

チャンネルに対する接続タイムアウト時間 (秒単位) へのアクセスを提供します。値が 0 以下の場合は、接続の試行はクライアントでタイムアウトになりません。フェイルオーバーするように設定されているチャンネルの場合、この値は接続が確立されるまでの待ち時間の合計になります。この値は、チャンネルが接続を試行するフェイルオーバー URI ごとにリセットされません。

実装
    public function get connectTimeout():int
    public function set connectTimeout(value:int):void
endpointプロパティ 
endpoint:String  [read-only]

このチャンネルのエンドポイントへのアクセスを提供します。この値は、uri プロパティの値に基づいて算出されます。

実装
    public function get endpoint():String
failoverURIsプロパティ 
failoverURIs:Array  [read-write]

エンドポイントがクラスタ化されている場合に、このチャンネルがフェイルオーバーを試行できるエンドポイント URI のセットへのアクセスを提供します。

実装
    public function get failoverURIs():Array
    public function set failoverURIs(value:Array):void
idプロパティ 
id:String  [read-only]

このチャンネルの ID へのアクセスを提供します。

実装
    public function get id():String
protocolプロパティ 
protocol:String  [read-only]

チャンネルが使用するプロトコルへのアクセスを提供します。

メモ: チャンネルのサブクラスでこのメソッドをオーバーライドし、サポートされるプロトコルを表すストリングを返す必要があります。サポートされるプロトコルのストリングの例として、"rtmp"、"http"、"https" などがあります。

実装
    public function get protocol():String
reconnectingプロパティ 
reconnecting:Boolean  [read-only]

このチャンネルが代替エンドポイントへの再接続を実行中であるかどうかを示します。

このプロパティはデータバインディングのソースとして使用できます。

実装
    public function get reconnecting():Boolean
requestTimeoutプロパティ 
requestTimeout:int  [read-write]

チャンネルに対するデフォルト要求タイムアウト (秒単位) へのアクセスを提供します。値が 0 以下の場合は、送信要求はクライアント上でタイムアウトになりません。

要求タイムアウトは、リモート宛先からの応答を必要とする RPC スタイルのメッセージングで特に便利です。

実装
    public function get requestTimeout():int
    public function set requestTimeout(value:int):void
uriプロパティ 
uri:String  [read-only]

このチャンネルに対するエンドポイント URI 全体を作成するのに使用される URI へのアクセスを提供します。URI は部分パスにすることができ、その場合は必要に応じて完全なエンドポイント URI が計算されます。

実装
    public function get uri():String
コンストラクタの詳細
Channel()コンストラクタ
public 関数 Channel(id:String, uri:String)

指定されたエンドポイント URI に接続する汎用チャンネルのインスタンスを作成します。メモ:チャンネルのタイプは直接作成しないでください。代わりに、プロトコル固有のサブクラス (RTMPChannel や AMFChannel など) のインスタンスを作成します。

パラメータ
id:String — このチャンネルの ID です。
 
uri:String — このチャンネルのエンドポイント URI です。
メソッドの詳細
applySettings()メソッド
public function applySettings(settings:XML):void

個々のチャンネルに必要な設定を適用するには常に、サブクラスでこのメソッドをオーバーライドする必要があります。必ず super.applySettings() を呼び出して、チャンネルに一般的な設定を適用してください。

パラメータ
settings:XML — このチャンネルの services-config.xml ファイルのXML フラグメントです。以下のフラグメントには、すべての設定内容を備えた <channel> タグがあります。
<channel id="my-amf" type="mx.messaging.channels.AMFChannel">
<endpoint uri="/dev/messagebroker/amf" type="flex.messaging.endpoints.AmfEndpoint"/>
<プロパティ>
<polling-enabled>false</polling-enabled>
</properties>
</channel>
      
connect()メソッド 
public final function connect(channelSet:ChannelSet):void

ChannelSet をチャンネルに接続します。チャンネルがまだエンドポイントに接続されていない場合は、接続を試みます。チャンネルのサブクラスで internalConnect() メソッドをオーバーライドし、基になる接続が確立されたら connectSuccess() メソッドを呼び出す必要があります。

パラメータ
channelSet:ChannelSet — チャンネルに接続する ChannelSet です。
connectFailed()メソッド 
protected function connectFailed(event:ChannelFaultEvent):void

失敗した内部接続を処理し、チャンネルの FAULT イベントを送出します。チャンネルに failoverURI 値がある場合は、その URI 値を順に使用して、接続が確立されるまでまたは使用可能な値がなくなるまで、自動的に再接続を試みます。

パラメータ
event:ChannelFaultEvent — 失敗した接続の ChannelFaultEvent です。
connectSuccess()メソッド 
protected function connectSuccess():void

成功した内部接続を処理し、チャンネルの CONNECT イベントを送出します。

connectTimeoutHandler()メソッド 
protected function connectTimeoutHandler(event:TimerEvent):void

ChannelFaultEvent を送出して接続タイムアウトを処理します。現在の接続試行を停止するために、サブタイプによってオーバーライドされることがありますが、super.connectTimeoutHandler(event) を呼び出す必要があります。

パラメータ
event:TimerEvent — 接続タイムアウト時間に達したことを示すタイマーイベント。
disconnect()メソッド 
public final function disconnect(channelSet:ChannelSet):void

ChannelSet をチャンネルから切断します。チャンネルがエンドポイントに接続されていて、接続されている ChannelSet がそれ以上ない場合、ChannelSet は内部的に切断されます。

チャンネルのサブクラスで internalDisconnect() メソッドをオーバーライドし、基となる接続が終了している場合は disconnectSuccess() メソッドを呼び出す必要があります。

パラメータ
channelSet:ChannelSet — チャンネルから切断する ChannelSet です。
disconnectFailed()メソッド 
protected function disconnectFailed(event:ChannelFaultEvent):void

失敗した内部切断を処理し、チャンネルの FAULT イベントを送出します。

パラメータ
event:ChannelFaultEvent — 失敗した切断の ChannelFaultEvent です。
disconnectSuccess()メソッド 
protected function disconnectSuccess(rejected:Boolean = false):void

成功した内部切断を処理して、チャンネルの DISCONNECT イベントを送出します。切断の原因がネットワーク障害で、チャンネルに failoverURI 値がある場合は、その URI 値を順に使用して、接続が確立されるまでまたは使用可能な値がなくなるまで、自動的に再接続を試みます。

パラメータ
rejected:Boolean (default = false) — スキップしない限り試行されるフェイルオーバー処理を切断時にすべてスキップする必要がある場合は、true です。フェイルオーバー処理の実行を許可する必要のある場合は、false です。
getMessageResponder()メソッド 
protected function getMessageResponder(agent:MessageAgent, message:IMessage):MessageResponder

チャンネルの send() メソッドに適切な MessageResponder を返します。オーバーライドする必要があります。

パラメータ
agent:MessageAgent — メッセージを送信する MessageAgent です。
 
message:IMessage — 送信するメッセージです。

戻り値
MessageResponder — 結果またはエラーを処理するための MessageResponder です。

スロー
IllegalOperationError — チャンネルのサブクラスでこのメソッドをオーバーライドしない場合。
internalConnect()メソッド 
protected function internalConnect():void

チャンネルをエンドポイントに接続します。オーバーライドする必要があります。

internalDisconnect()メソッド 
protected function internalDisconnect(rejected:Boolean = false):void

チャンネルをエンドポイントから切断します。オーバーライドする必要があります。

パラメータ
rejected:Boolean (default = false) — 接続拒否またはタイムアウトが原因で切断され、再接続を自動的に試行する必要がない場合は true で、それ以外の場合は false です。
internalSend()メソッド 
protected function internalSend(messageResponder:MessageResponder):void

チャンネルを通じてメッセージを送信し、応答を応答側に転送します。オーバーライドする必要があります。

パラメータ
messageResponder:MessageResponder — 応答を処理するための MessageResponder です。
logout()メソッド 
public function logout(agent:MessageAgent):void

チャンネルが接続されていれば、CommandMessage をサーバーに送信してログアウトします。現在の証明書はクリアされます。

パラメータ
agent:MessageAgent — ログアウトするための MessageAgent です。
send()メソッド 
public final function send(agent:MessageAgent, message:IMessage):void

指定されたメッセージをターゲットの宛先に送信します。実際の送信を実行するには、サブクラスで internalSend() メソッドをオーバーライドする必要があります。

パラメータ
agent:MessageAgent — メッセージを送信している MessageAgent です。
 
message:IMessage — 送信するメッセージです。

スロー
InvalidDestinationError — MessageAgent とメッセージのいずれにも宛先が指定されていない場合。
setCredentials()メソッド 
public function setCredentials(credentials:String, agent:MessageAgent = null):void

資格情報を指定の値に設定します。資格情報が null でなく、チャンネルが接続されている場合、このメソッドは資格情報を使用してログインするようにとの CommandMessage もサーバーに送信します。

パラメータ
credentials:String — 資格情報はストリングです。
 
agent:MessageAgent (default = null) — ログインするための MessageAgent です。ログイン結果を処理します。
イベントの詳細
channelConnectevent 
イベントオブジェクトの型: mx.messaging.events.ChannelEvent
ChannelEvent.type property = mx.messaging.events.ChannelEvent.CONNECT

チャンネルがエンドポイントから切断された後で送出されます。

CONNECT イベント型。チャンネルがエンドポイントに接続されたことを示します。

この定数の値は "channelConnect" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
channelこのイベントがトリガされたチャンネルです。
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
reconnecting このイベントを生成したチャンネルが再接続中かどうかを示します。
rejected このイベントを生成したチャンネルが拒否されたかどうかを示します。アクティビティがないことによりチャンネルが切断された場合は、これが true になり、フェイルオーバーが行われず、代替チャンネルへの接続も行われません。
channelDisconnectevent  
イベントオブジェクトの型: mx.messaging.events.ChannelEvent
ChannelEvent.type property = mx.messaging.events.ChannelEvent.DISCONNECT

チャンネルがエンドポイントから切断された後で送出されます。

DISCONNECT イベント型。チャンネルがエンドポイントから切断されたことを示します。

この定数の値は "channelDisconnect" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
channelこのイベントがトリガされたチャンネルです。
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
reconnecting このイベントを生成したチャンネルが再接続中かどうかを示します。
rejected このイベントを生成したチャンネルが拒否されたかどうかを示します。アクティビティがないことによりチャンネルが切断された場合は、これが true になり、フェイルオーバーが行われず、代替チャンネルへの接続も行われません。
channelFaultevent  
イベントオブジェクトの型: mx.messaging.events.ChannelFaultEvent
ChannelFaultEvent.type property = mx.messaging.events.ChannelFaultEvent.FAULT

チャンネルに障害が発生した後に送出されます。

FAULT イベント型。フォルトが発生したチャンネルを示します。

この定数の値は "channelFault" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
channelこのイベントを生成したチャンネル。
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
faultCode失敗に関する宛先固有の詳細を提供します。
faultDetail失敗の宛先固有の理由へのアクセスを提供します。
faultStringチャンネル自体がフォルトを生成しなかった場合は、フォルトの根本的な理由へのアクセスを提供します。
reconnecting このイベントを生成したチャンネルが再接続中かどうかを示します。
rootCause チャンネル自体がフォルトを生成しなかった場合は、フォルトの根本的な理由へのアクセスを提供します。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
messageevent  
イベントオブジェクトの型: mx.messaging.events.MessageEvent
MessageEvent.type property = mx.messaging.events.MessageEvent.MESSAGE

チャンネルがエンドポイントからメッセージを受信したときに送出されます。

MESSAGE イベント型。メッセージの受信時に送出されます。

この定数の値は "message" です。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesfalse
cancelablefalse
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
messageこのイベントに関連付けられたメッセージです。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。
propertyChangeevent  
イベントオブジェクトの型: mx.events.PropertyChangeEvent
PropertyChangeEvent.type property = mx.events.PropertyChangeEvent.PROPERTY_CHANGE

チャンネルのプロパティが変更されたときに送出されます。

PropertyChangeEvent.PROPERTY_CHANGE 定数により、PropertyChange イベントのイベントオブジェクトの type プロパティ値が定義されます。

イベントオブジェクトの各プロパティには次の値が設定されます。

プロパティ
bubblesコンストラクタによって決定されます。デフォルトは false です。
cancelableコンストラクタによって決定されます。デフォルトは false です。
kind変更の種類。PropertyChangeEventKind.UPDATE または PropertyChangeEventKind.DELETE のいずれかです。
oldValue元のプロパティの値です。
newValue新しいプロパティの値 (存在する場合) です。
property変更されたプロパティです。
source変更されたプロパティを含むオブジェクトです。
currentTargetイベントを処理するイベントリスナーを定義するオブジェクト。たとえば、イベントリスナーの登録に myButton.addEventListener() を使用すると、currentTarget の値は "myButton" となります。
targetイベントを送出したオブジェクトを表します。このオブジェクトは必ずしもイベントを受け取るオブジェクトとは限りません。イベントを受け取るオブジェクトに常にアクセスするには、currentTarget プロパティを使用してください。