| パッケージ | net.user1.reactor |
| クラス | public class ConnectionManager |
| 継承 | ConnectionManager flash.events.EventDispatcher |
| バージョン : | Reactor 1.0.0 |
ConnectionManagerクラスはReactorアプリケーションによるUnionサーバーへの全接続を管理します。 大体のアプリケーションでは、ConnectionManagerクラスは直接には使用されません。 代わりにUnionサーバーへの接続はReactorクラスのconnect()メソッドを用いて行われ、切断はReactorクラスのdisconnect()メソッドによって要求されます。 しかしながら、ConnectionManagerは接続プロセスにおいて、Reactorクラスが可能な分よりも多くの制御を提供します。 特に、ConnectionManagerは次の機能を提供します。
var connectionManager:ConnectionManager = reactor.getConnectionManager();
connectionManager.addConnection(new XMLSocketConnection("example.com", 80));
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 80));
connectionManager.connect();
しかし、注意として、ソケット接続をaddConnection()を通して手動で設定した場合、次のコードに示すように、バックアップとしてのHTTP接続も全て手動で設定しなければなりません(バックアップのHTTPConnectionオブジェクトは全てのソケット接続試行の失敗後にしか使用していない点に留意してください):
var connectionManager:ConnectionManager = reactor.getConnectionManager();
connectionManager.addConnection(new XMLSocketConnection("example.com", 80));
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 80));
connectionManager.addConnection(new HTTPConnection("example.com", 80));
connectionManager.addConnection(new HTTPConnection("tryunion.com", 80));
connectionManager.connect();
ReactorアプリケーションのConnectionManagerにアクセスするには、次のようにReactorクラスのgetConnectionManager()メソッドを使用してください:
var reactor:Reactor = new Reactor(); var connectionManager:ConnectionManager = reactor.getConnectionManager();
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| DEFAULT_READY_TIMEOUT : int = 10000 [静的] | ConnectionManager | ||
| メソッド | 定義元 | ||
|---|---|---|---|
ConnectionManager(reactor:Reactor) | ConnectionManager | ||
addConnection(connection:IConnection):void このConnectionManagerの接続リストに新しいIConnectionオブジェクトを追加します。 | ConnectionManager | ||
connect():void 現在指定されている接続オブジェクトのリストを使用してUnionサーバーへの接続を試行します。 | ConnectionManager | ||
disconnect():void サーバーへの全ての接続を終了させます。 | ConnectionManager | ||
dispose():void このオブジェクトを永久に無効化し、その全リソースを解放します。 | ConnectionManager | ||
接続が現在接続中の場合、getActiveConnection()はその接続を返します。 そうでない場合、getActiveConnection()はnullを返します。 | ConnectionManager | ||
getConnectAbortCount():int このConnectionManagerオブジェクトが前回の接続成功以降、接続の試行を進行中に何回中断したかを示すint値を返します。 | ConnectionManager | ||
getConnectAttemptCount():int このConnectionManagerオブジェクトが前回の正常な接続の確立以降、接続を何回試行したかを示すint値を返します。 | ConnectionManager | ||
getConnectFailedCount():int このConnectionManagerオブジェクトが前回の正常な接続の確立以降、接続の試行に何回失敗したかを示すint値を返します。 | ConnectionManager | ||
getConnections():Array ConnectionManagerの接続リストの一時的なスナップショットを配列で返します。 | ConnectionManager | ||
getConnectionState():int ConnectionManagerの現在の状態を表すint値を返します。 | ConnectionManager | ||
接続が現在進行中な場合、getInProgressConnection()はその接続を返します。そうでない場合、getInProgressConnection()はnullを返します。 | ConnectionManager | ||
getReadyCount():int このConnectionManagerオブジェクトがサーバーへの有効な接続の確立に成功した回数を示すint値を返します。 | ConnectionManager | ||
getReadyTimeout():int それぞれのIConnectionオブジェクトがセットアップフェイズを完了するためのUnionサーバーへの接続試行を許可する最大回数です。 | ConnectionManager | ||
isReady():Boolean ConnectionManagerが現在Unionサーバーへのアクティブな接続を持っているかどうかを示すBoolean値です。 | ConnectionManager | ||
removeAllConnections():void このConnectionManagerの接続リストから全てのIConnectionオブジェクトを除去します。 | ConnectionManager | ||
removeConnection(connection:IConnection):Boolean このConnectionManagerの接続リストから指定したIConnectionオブジェクトを除去します。 | ConnectionManager | ||
setReadyTimeout(milliseconds:int):void それぞれのIConnectionオブジェクトがセットアップフェイズを完了するためのUnionサーバーへの接続試行を許可する最大回数をセットします。 | ConnectionManager | ||
| Event | Summary | 定義元 | ||
|---|---|---|---|---|
| ConnectionManagerによる接続試行が開始するときにトリガーされるイベントです。 | ConnectionManager | |||
| クライアントがアクティブな接続を閉じるときにトリガーされるイベントです。 | ConnectionManager | |||
| ConnectionManagerによる接続試行が失敗するときにトリガーされるイベントです。 | ConnectionManager | |||
| クライアントかサーバーのどちらかがアクティブな接続を閉じるときにトリガーされるイベントです。 | ConnectionManager | |||
| ConnectionManagerの接続リスト内のIConnectionオブジェクトの一つがREADY状態を達成するときにトリガーされるイベントです。 | ConnectionManager | |||
| ConnectionManagerが接続試行のためにIConnectionオブジェクトを選択するときにトリガーされるイベントです。 | ConnectionManager | |||
| サーバーがアクティブな接続を閉じるときにトリガーされるイベントです。 | ConnectionManager | |||
| DEFAULT_READY_TIMEOUT | プロパティ |
public static var DEFAULT_READY_TIMEOUT:int = 10000| ConnectionManager | () | コンストラクタ |
| addConnection | () | メソッド |
public function addConnection(connection:IConnection):void| バージョン : | Reactor 1.0.0 |
このConnectionManagerの接続リストに新しいIConnectionオブジェクトを追加します。 接続リストはUnionサーバーへの接続時に試行されるべき接続を、リストへの追加順に指定します。 Unionサーバーへ接続するには、Reactorクラスのconnect()メソッドかConnectionManagerクラスのconnect()メソッドを使用してください。
パラメータ
connection:IConnection |
関連項目
| connect | () | メソッド |
public function connect():void| バージョン : | Reactor 1.0.0 |
現在指定されている接続オブジェクトのリストを使用してUnionサーバーへの接続を試行します。 もしリスト中のいずれかの接続が成功した場合、ConnectionManagerはConnectionManagerEvent.READYイベントを送出し、ReactorオブジェクトはReactorEvent.READYイベントを送出します。 しかしながら、もしリストにある全ての接続が失敗した場合、ConnectionManagerはConnectionManagerEvent.CONNECT_FAILUREイベントを送出し、ReactorオブジェクトはReactorEvent.CLOSEイベントを送出します。
ConnectionManagerのconnect()メソッドを直接使用するアプリケーションは初めに最低でも一つのIConnectionオブジェクトをConnectionManagerに追加する必要があります。 例えば、
var connectionManager:ConnectionManager = reactor.getConnectionManager();
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 80));
一度接続が追加されると、connect()は次のように起動できます。
connectionManager.connect();
接続は接続リストへの追加順に試行されます。 例えば、次のコードは"tryunion.com"ホストの80番ポートにXMLSocketConnectioの接続を試行するようにConnectionManagerに指示します。 もし接続の試行が失敗する場合、ConnectionManagerは次に同じポートに対してHTTPを使った接続を試行します。
var connectionManager:ConnectionManager = reactor.getConnectionManager();
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 80));
connectionManager.addConnection(new HTTPConnection("tryunion.com", 80));
connectionManager.connect();
ConnectionManagerがそのリストの次の接続に移行するときには、毎回ConnectionManagerEvent.SELECT_CONNECTIONイベントをトリガーします。
しかしながら、ConnectionManagerクラスのconnect()メソッドはほとんどのアプリケーションにとっては直接は使用されない点に留意してください。 代わりに、サーバーへ接続するには、アプリケーションは通常Reactorクラスのより便利なconnect()メソッドを使用します。connect()メソッドはその動作をConnectionManagerクラスのconnect()メソッドに任せます。 例えば、次の一行のコードは既に記述した四行と等価です。
reactor.connect("tryunion.com", 80);
しかしながら、Reactorクラス版のconnect()はConnectionManagerのconnect()メソッドより項目が少ないために、複数の接続に対して複数のホストを指定することはできない点に注意してください。
関連項目
| disconnect | () | メソッド |
public function disconnect():void| バージョン : | Reactor 1.0.0 |
サーバーへの全ての接続を終了させます。 もし切断試行が成功する場合、ConnectionManagerはConnectionManagerEvent.CLIENT_KILL_CONNECTとConnectionManagerEvent.DISCONNECTイベントを送出し、ReactorオブジェクトはReactorEvent.CLOSEイベントを送出します。
関連項目
| dispose | () | メソッド |
public function dispose():void| バージョン : | Reactor 1.0.0 |
このオブジェクトを永久に無効化し、その全リソースを解放します。 dispose()がいったん呼び出されると、そのオブジェクトは二度と使用できません。 .swfファイルをアンロードする時に要求されるように、オブジェクトをメモリから排除する時のみdispose()を使用してください。 単にUnionサーバーから切断するには、dispose()ではなくdisconnect()を使用してください。
関連項目
| getActiveConnection | () | メソッド |
public function getActiveConnection():IConnection| バージョン : | Reactor 1.0.0 |
接続が現在接続中の場合、getActiveConnection()はその接続を返します。 そうでない場合、getActiveConnection()はnullを返します。
戻り値IConnection |
| getConnectAbortCount | () | メソッド |
public function getConnectAbortCount():int| バージョン : | Reactor 1.0.0 |
このConnectionManagerオブジェクトが前回の接続成功以降、接続の試行を進行中に何回中断したかを示すint値を返します。
戻り値int |
関連項目
| getConnectAttemptCount | () | メソッド |
public function getConnectAttemptCount():int| バージョン : | Reactor 1.0.0 |
このConnectionManagerオブジェクトが前回の正常な接続の確立以降、接続を何回試行したかを示すint値を返します。
戻り値int |
関連項目
| getConnectFailedCount | () | メソッド |
public function getConnectFailedCount():int| バージョン : | Reactor 1.0.0 |
このConnectionManagerオブジェクトが前回の正常な接続の確立以降、接続の試行に何回失敗したかを示すint値を返します。 正常な接続が確立されるたびに、接続失敗カウントはゼロに戻ります。
戻り値int |
関連項目
| getConnections | () | メソッド |
public function getConnections():Array| バージョン : | Reactor 1.0.0 |
ConnectionManagerの接続リストの一時的なスナップショットを配列で返します。 配列の各要素はIConnectionオブジェクトです。
戻り値Array |
| getConnectionState | () | メソッド |
public function getConnectionState():int| バージョン : | Reactor 1.0.0 |
ConnectionManagerの現在の状態を表すint値を返します。 とりうる状態の一覧については、ConnectionStateクラスを参照してください。
戻り値int — 接続状態を表すint値です。 |
関連項目
| getInProgressConnection | () | メソッド |
public function getInProgressConnection():IConnection| バージョン : | Reactor 1.0.0 |
接続が現在進行中な場合、getInProgressConnection()はその接続を返します。そうでない場合、getInProgressConnection()はnullを返します。
戻り値IConnection |
| getReadyCount | () | メソッド |
public function getReadyCount():int| バージョン : | Reactor 1.0.0 |
このConnectionManagerオブジェクトがサーバーへの有効な接続の確立に成功した回数を示すint値を返します。 このカウントはConnectionEvent.READYイベントが発生するときに増加します。
戻り値int |
関連項目
| getReadyTimeout | () | メソッド |
public function getReadyTimeout():int| バージョン : | Reactor 1.0.0 |
それぞれのIConnectionオブジェクトがセットアップフェイズを完了するためのUnionサーバーへの接続試行を許可する最大回数です。
戻り値int |
関連項目
| isReady | () | メソッド |
public function isReady():Boolean| バージョン : | Reactor 1.0.0 |
ConnectionManagerが現在Unionサーバーへのアクティブな接続を持っているかどうかを示すBoolean値です。
戻り値Boolean — Returns Reactorが現在サーバーに接続中ならtrueを、そうでなければfalseを返します。 |
| removeAllConnections | () | メソッド |
public function removeAllConnections():void| バージョン : | Reactor 1.0.0 |
このConnectionManagerの接続リストから全てのIConnectionオブジェクトを除去します。 現在開かれている全ての接続は切断されます。 新たな接続がaddConnection()によって追加されるまで、これに続くconnect()やdisconnect()の呼び出しは失敗します。
関連項目
| removeConnection | () | メソッド |
public function removeConnection(connection:IConnection):Boolean| バージョン : | Reactor 1.0.0 |
このConnectionManagerの接続リストから指定したIConnectionオブジェクトを除去します。 現在接続されている場合、除去の前に切断されます。
パラメータ
connection:IConnection |
Boolean |
関連項目
| setReadyTimeout | () | メソッド |
public function setReadyTimeout(milliseconds:int):void| バージョン : | Reactor 1.0.0 |
それぞれのIConnectionオブジェクトがセットアップフェイズを完了するためのUnionサーバーへの接続試行を許可する最大回数をセットします。 IConnectionオブジェクトがUnionサーバーへの接続を試行するとき、クライアントセットアップのタスク(クライアントIDの発行など)が実行される間に"ハンドシェイク"プロセスを開始します。 セットアップのタスクが"readyタイムアウト"として知られる制限許可内に完了しない場合、IConnectionオブジェクトはセットアップのプロセスを失敗とみなし、接続の試行を自動的に中断します。 もし、一方で、クライアントセットアップのプロセスがready-timeoutの制限内で完了した場合、IConnectionオブジェクトはセットアップのプロセスを成功とみなし、接続が使用可能であることを示すConnectionEvent.READYイベントをトリガーします。 readyタイムアウトはデフォルトで10秒間ですが、setReadyTimeout()メソッドを通して変更できます。
一度IConnectionオブジェクトがready状態を達成すると、Reactorは規則的なハートビートメッセージを送信することでサーバーへの接続のモニターを続けます。 デフォルトでは、一つのハートビートメッセージは10秒毎に送信されますが、ハートビートメッセージの頻度はConnectionMonitorのsetHeartbeatFrequency()メソッドを通して設定できます。 もしUnionサーバーが一つのハートビートへの応答に60秒(デフォルト)より長くかかる場合、Reactorは自動的に切断を行います。 そのReactorが許容するハートビート応答時間を変更するには、ConnectionMonitorのsetConnectionTimeout()メソッドを使用してください。
パラメータ
milliseconds:int — ミリ秒で表した、接続がready状態を達成しなければならない時間です。 |
関連項目
var reactor:Reactor = new Reactor();
reactor.getConnectionManager().setReadyTimeout(20000);
| BEGIN_CONNECT | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.BEGIN_CONNECT
ConnectionManagerによる接続試行が開始するときにトリガーされるイベントです。 ConnectionManagerEvent.BEGIN_CONNECTイベントの後にはConnectionManagerEvent.SELECT_CONNECTIONイベントが続きます。これはConnectionManagerがその接続試行に用いる特定のIConnectionオブジェクトを示します。
関連項目
| CLIENT_KILL_CONNECT | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.CLIENT_KILL_CONNECTクライアントがアクティブな接続を閉じるときにトリガーされるイベントです。 ConnectionManagerEvent.CLIENT_KILL_CONNECTイベントの後には常にConnectionManagerEvent.DISCONNECTイベントが続きます。
関連項目
| CONNECT_FAILURE | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.CONNECT_FAILURE
ConnectionManagerによる接続試行が失敗するときにトリガーされるイベントです。 接続失敗の一般的な原因:
ConnectionManagerEvent.CONNECT_FAILUREイベントはConnectionManagerがその接続リスト内の全ての接続を使用して接続試行を行って、そのうち一つも"ready"状態を達成しなかったときにConnectionManagerクラスによってトリガーされるイベントです。 便宜的に、接続試行が失敗するとき、ReactorオブジェクトもReactorEvent.CLOSEイベントを送出します。
関連項目
| DISCONNECT | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.DISCONNECTクライアントかサーバーのどちらかがアクティブな接続を閉じるときにトリガーされるイベントです。 ConnectionManagerEvent.DISCONNECTには常にConnectionManagerEvent.CLIENT_KILL_CONNECTイベントかConnectionManagerEvent.SERVER_KILL_CONNECTのどちらかが先行します。これは切断がクライアントとサーバーのどちらから行われたかを示します。
関連項目
| READY | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.READY
ConnectionManagerの接続リスト内のIConnectionオブジェクトの一つがREADY状態を達成するときにトリガーされるイベントです。 便宜的に、ConnectionManagerEvent.READYイベントは、次に、常にReactorEvent.READYイベントをトリガーします。 ready状態を達成した下層のIConnectionオブジェクトへの参照を取得するには、ConnectionManagerのgetActiveConnection()メソッドを使用してください。
関連項目
| SELECT_CONNECTION | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.SELECT_CONNECTION
ConnectionManagerが接続試行のためにIConnectionオブジェクトを選択するときにトリガーされるイベントです。 接続を選択すると、その直後にConnectionManagerはその接続を試行します。 次に、そのIConnectionオブジェクト自体が、Unionに接続できたかどうかを示すそれ自身のConnectionEventを送出します。 もしそのIConnectionオブジェクト自体が接続できない場合、ConnectionManagerは自動的に次の利用可能なIConnectionオブジェクトに移ります。 もしConnectionManagerのリスト内のいずれかのIConnectionオブジェクトが接続に成功すると、ConnectionManagerは次にConnectionManagerEvent.READYイベントをトリガーします。 もし、一方で、IConnectionオブジェクトが一つも接続しなかった場合、ConnectionManagerはConnectionManagerEvent.CONNECT_FAILUREイベントをトリガーし、そのリスト内のどのIConnectionオブジェクトを通しても接続を確立できなかったことを示します。
新しいIConnectionオブジェクトをConnectionManagerの接続リストに加えるには、ConnectionManagerのaddConnection()メソッドを使用してください。
関連項目
| SERVER_KILL_CONNECT | イベント |
ConnectionManagerEventnet.user1.reactor.ConnectionManagerEvent.SERVER_KILL_CONNECTサーバーがアクティブな接続を閉じるときにトリガーされるイベントです。 ConnectionManagerEvent.SERVER_KILL_CONNECTイベントの後には常にConnectionManagerEvent.DISCONNECTイベントが続きます。
関連項目