(Adobe® Flex™ Data Services 2 のみ)
パッケージ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
パブリック Methods
 メソッド定義
  
指定されたエンドポイント URI に接続する汎用チャネルのインスタンスを作成します。
Channel
 Inherited
addEventListener(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
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
チャネルが接続されていれば、CommandMessage をサーバーに送信してログアウトします。
Channel
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(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
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
Protected Methods
 メソッド定義
  
失敗した内部接続を処理し、チャネルの FAULT イベントを送出します。
Channel
  
成功した内部接続を処理し、チャネルの CONNECT イベントを送出します。
Channel
  
ChannelFaultEvent を送出して接続タイムアウトを処理します。
Channel
  
失敗した内部切断を処理し、チャネルの FAULT イベントを送出します。
Channel
  
disconnectSuccess(rejected:Boolean = false):void
成功した内部切断を処理して、チャネルの DISCONNECT イベントを送出します。
Channel
  
チャネルの send() メソッドに適切な MessageResponder を返します。
Channel
  
チャネルをエンドポイントに接続します。
Channel
  
internalDisconnect(rejected:Boolean = false):void
チャネルをエンドポイントから切断します。
Channel
  
internalSend(messageResponder:MessageResponder):void
チャネルを通じてメッセージを送信し、応答を応答側に転送します。
Channel
イベント
 イベント一覧定義
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   チャネルがエンドポイントから切断された後で送出されます。Channel
   チャネルがエンドポイントから切断された後で送出されます。Channel
   チャネルに障害が発生した後に送出されます。Channel
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
   チャネルがエンドポイントからメッセージを受信したときに送出されます。Channel
   チャネルのプロパティが変更されたときに送出されます。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"/>
        <properties>
          <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 プロパティを使用します。