| パッケージ | net.user1.reactor |
| クラス | public class Reactor |
| 継承 | Reactor flash.events.EventDispatcher |
| バージョン : | Reactor 1.0.0 |
var reactor:Reactor = new Reactor();
reactor.connect("tryunion.com", 80)
connect()が実行された後、Reactorはサーバーが接続要求を許可するのを待ちます。 一度サーバーが応答してReactorオブジェクトが必要な接続のセットアップ処理を全て完了すると、ReactorオブジェクトはReactorEvent.READYイベントをトリガし、クライアント-サーバー通信が開始可能なことを示します。 クライアントアプリケーションはサーバーと通信する前にReactor.READYイベントを待つ必要があります。
ベストプラクティスとして、次のようにconnect()を実行する前に常にReactor.READYを登録してください。
var reactor:Reactor = new Reactor();
// 初めに登録して…
reactor.addEventListener(ReactorEvent.READY,
readyListener);
// …それから接続する
reactor.connect("tryunion.com", 80);
private function readyListener (e:ReactorEvent):void {
// コネクションが使用可能になると、安全にサーバーと
// 通信できます。例えば、このコードは新たなチャットルームを作成します:
chatRoom = reactor.getRoomManager().createRoom("examples.chat");
// そしてこのコードでそのルームに入室します。
chatRoom.join();
}
関連項目
| メソッド | 定義元 | ||
|---|---|---|---|
Reactor(configURL:String, traceLogMessages:Boolean = true) コンストラクタです。新しいReactorインスタンスを初期化します。 | Reactor | ||
connect(host:String = null, ... ports):void connect()メソッドは指定したホストとポートにあるサーバーへの接続を試行します。 | Reactor | ||
disableHTTPFailover():void 指定のホストとポートへの接続を試行するとき、Reactorが永続ソケット接続のみを使用するようにします。 | Reactor | ||
disableStatistics():void このReactorオブジェクトへの統計の記録を無効化します。 | Reactor | ||
disconnect():void サーバーへの全ての接続を終了させます。 | Reactor | ||
dispose():void このオブジェクトを永久に無効化し、その全リソースを解放します。 | Reactor | ||
enableHTTPFailover():void 指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、Reactorが自動的にHTTPを通して接続を試みるようにします。 | Reactor | ||
enableStatistics():void このReactorオブジェクトへの統計の記録を有効化します。 | Reactor | ||
アプリケーションの AccountManager インスタンスへの参照を返します。これは Reactor によって自動生成されます。 AccountManagerクラスはユーザーアカウント登録とログインに関する機能セットを提供します。 | Reactor | ||
アプリケーションのClientManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。ClientManagerクラスはClientインスタンスへのアクセスを作成・提供します。 | Reactor | ||
アプリケーションのConnectionManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。ConnectionManagerクラスはサーバーへの接続を確立するために使用されます。 | Reactor | ||
ConnectionMonitorインスタンスへの参照を返します。これはハートビート(ping)と自動切断・再接続機能を管理します。 | Reactor | ||
デバッギングログへの参照を返します。これはクライアントにおいて発生したオペレーションを記述し、低水準のクライアント-サーバー間通信も表示できます。 | Reactor | ||
アプリケーションのMessageManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。MessageManagerクラスはサーバーとのメッセージ送受信に関する機能セットを提供します。 | Reactor | ||
アプリケーションのRoomManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。RoomManagerクラスはルームを生成、破壊、観戦、入室、そしてアクセスするために使用します。 | Reactor | ||
アプリケーションのServerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。Serverクラスはグローバルなサーバーのデータと関数へのアクセスを提供します。 | Reactor | ||
getSessionID():String 利用可能であれば、この Reactor インスタンスにおける Union のセッションIDになります。 | Reactor | ||
この接続に関するStatisticsオブジェクトへの参照を返します。これはKB/sの転送レートと送受信したメッセージ数のような数的指標を提供します。 | Reactor | ||
Systemクラスへの参照を返します。これのstatic変数はReactorのバージョン情報を提供します。 | Reactor | ||
isHTTPFailoverEnabled():Boolean 指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、Reactorが自動的にHTTPを通して接続を試みるかどうかを示します。 | Reactor | ||
isReady():Boolean Reactorが現在アクティブで完全に初期化されたサーバーへの接続を持っているかどうかを示すBooleanを返します。 | Reactor | ||
loadConfig(configURL:String):void クライアントのコンフィグファイルをロードします。 | Reactor | ||
アプリケーション自身のIClientオブジェクト(つまり、"現クライアント")への参照を返します。 | Reactor | ||
setServer(host:String, ... ports):void 将来の接続試行時のためにホストとポートを指定します。 | Reactor | ||
updateSnapshot(snapshot:Snapshot):void 指定のスナップショットオブジェクトをサーバーから得られる最新の情報に更新します。 | Reactor | ||
| Event | Summary | 定義元 | ||
|---|---|---|---|---|
| サーバーへの接続が失われるか、接続の試行が失敗するときに送出されます。 | Reactor | |||
| クライアントがUnionサーバーに接続したときUPC仕様バージョンがクライアントのUPCバージョンと一致しないと送出されます。 | Reactor | |||
| サーバーへの接続が確立され、完全に初期化されたときに送出されます。 | Reactor | |||
| Reactor | () | コンストラクタ |
public function Reactor(configURL:String, traceLogMessages:Boolean = true)| バージョン : | Reactor 1.0.0 |
コンストラクタです。新しいReactorインスタンスを初期化します。
パラメータconfigURL:String — クライアントのコンフィグファイルのURLです。 ファイルのロードが完了したとき、クライアントは自動的にサーバーへの接続を試行します。 構成ファイルはコンストラクション時に読み込まれている必要はなく、ReactorのloadConfig()メソッドを通して後で読み込める点に注意してください。 構成ファイルの詳細については、loadConfig()を参照してください。 | |
traceLogMessages:Boolean (default = true) — 出力コンソールへのロギングを有効にするかどうかを示すフラグです。 |
関連項目
| connect | () | メソッド |
public function connect(host:String = null, ... ports):void| バージョン : | Reactor 1.0.0 |
connect()メソッドは指定したホストとポートにあるサーバーへの接続を試行します。 一つもホストとポートが指定されていない場合、ReactorはConnectionManagerの現在のホストとポートのリストを使用して接続を試行します。
外部設定ファイル(つまりconfig.xml)がReactorのコンストラクタで使用されるとき、Reactorオブジェクトはサーバーに自動的に接続するためconnect()メソッドの呼び出しは不要です。 Reactorがコンフィグファイルなしでインスタンス化されたとき、次のようにインスタンス生成後にconnect()を手動で呼ぶ必要があります。
reactor = new Reactor();
reactor.connect("tryunion.com", 80);
接続が成功してReactorオブジェクトが完全に初期化されたとき、ReactorEvent.READYイベントがトリガされます。 ReactorEvent.READYのリスナーは通常、大体はルームを生成するか入室することで、実行中のアプリケーションを開始します。 より下層の接続イベントはConnectionManagerを通して制御できます。
connect()メソッドにはソケット接続のための特別なポリシーファイル設定は不要です。 デフォルトでは、Union Serverは自動的にconnect()呼び出し内で指定されたポートにポリシーファイルを要求するFlash Playerを提供します。 しかしながら、サーバー管理者はサーバー側のpolicy.xmlファイルに許可を希望するドメインとポートを正しく指定していることを確かめる必要があります。
Reactorのconnect()メソッドはConnectionManagerクラスのaddConnection()とconnect()メソッドの便利なラッパーです。 Reactorのconnect()が呼び出されるたびに、全ての既存のConnectionManagerの接続は初めに閉じられ、除去されます。 それから、Reactorは新たなXMLSocketConnectionオブジェクトを各host/portの組み合わせごとに、Reactorのconnect()メソッドのhostとportsパラメータを通して指定することで自動的に生成します。 次に、Reactorは各XMLSocketConnectionオブジェクトをConnectionManagerの接続リストに追加します。 Reactorの自動HTTPフェイルオーバー機能が有効化されている場合、指定ポートに対するバックアップのHTTPConnectionも生成されます。 例えば、次の接続コードを考えてみてください:
reactor = new Reactor();
reactor.connect("tryunion.com", 80, 443);
デフォルトケースの場合は、自動HTTPフェイルオーバーが有効であり、このコードは次のコードと等価です:
var connectionManager:ConnectionManager = reactor.getConnectionManager();
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 80));
connectionManager.addConnection(new XMLSocketConnection("tryunion.com", 443));
connectionManager.addConnection(new HTTPConnection("tryunion.com", 80));
connectionManager.addConnection(new HTTPConnection("tryunion.com", 443));
connectionManager.connect();
このコードでは、HTTPConnectionオブジェクトはXMLSocketConnectionオブジェクトの後に追加されている事に注意してください。このことはConnectionManagerはHTTP接続に移る前に永続ソケットを確立する手段の全ての可能性を使い果たすことを意味します。 HTTP接続は永続ソケット接続より反応は悪いですが、より高いファイアーウォール越しの接続チャンスをもちます。
パラメータ
host:String (default = null) — 実行中のUnion Serverのドメインのストリング名かIPアドレスです。 例えば、"tryunion.com"あるいは"192.233.42.1"です。 現在のドメイン(つまり、.swfファイルがダウンロードされたドメイン)を指定するには、空の文字列("")を使用します。 .swfファイルが実際に実行中のマシン(サーバーと.swfファイルの両方が同じマシン上にある必要があります)を指定するには、"localhost"を使用します。 しかし、サーバーが一つのIPで動作するように設定してあるようなマルチIPのマシンが"localhost"に接続を試行すると失敗する点に注意してください。 サーバーで全ローカルIPアドレスへの接続を監視するように設定されていないときは、特定の名前かIPをhostに必ず設定する必要があります。 | |
... ports — ReactorがUnionサーバーへの接続を試行するべきポートのint値のリストです。 Reactorは指定順にポートへの接続を試行します。 例えば、portsが9100, 80, 443とセットされている場合、Reactorは最初にポート9100を通してUnionへの接続を試行します。 その接続が失敗した場合、Reactorは自動的に次のポート80を通して接続を試行し、それが失敗した場合、Reactorはポート443への接続を試行します。 全てのポートはポリシーファイルが1024未満のポートへの接続を許可する設定にしていない限りは1024以上にする必要があります。 Reactorのフェイルオーバー接続リストに複数のホストを追加する(複数のポートだけでなく)ためには、ConnectionManagerのaddConnection()メソッドを使用します。 可能であればいつも、Unionクライアントからの接続を最大限に許可するために、Unionサーバーはポート80で実行すると良いでしょう。 |
関連項目
| disableHTTPFailover | () | メソッド |
public function disableHTTPFailover():void| バージョン : | Reactor 1.0.0 |
指定のホストとポートへの接続を試行するとき、Reactorが永続ソケット接続のみを使用するようにします。 HTTPフェイルオーバーが無効なとき、Reactorは全ての永続ソケット接続の試行が失敗する場合にバックアップのHTTP接続の確立を自動的には試行しません。
関連項目
| disableStatistics | () | メソッド |
public function disableStatistics():void| バージョン : | Reactor 1.0.0 |
このReactorオブジェクトへの統計の記録を無効化します。
関連項目
| disconnect | () | メソッド |
public function disconnect():void| バージョン : | Reactor 1.0.0 |
サーバーへの全ての接続を終了させます。 もし切断試行が成功する場合、ConnectionManagerはConnectionManagerEvent.CLIENT_KILL_CONNECTとConnectionManagerEvent.DISCONNECTイベントを送出し、ReactorオブジェクトはReactorEvent.CLOSEイベントを送出します。
Reactorクラスのdisconnect()メソッドはConnectionManagerクラスのdisconnect()メソッドの便利なラッパーです。
関連項目
| dispose | () | メソッド |
public function dispose():void| バージョン : | Reactor 1.0.0 |
このオブジェクトを永久に無効化し、その全リソースを解放します。 dispose()がいったん呼び出されると、そのオブジェクトは二度と使用できません。 .swfファイルをアンロードする時に要求されるように、オブジェクトをメモリから排除する時のみdispose()を使用してください。 単純にReactorオブジェクトを切断するには、disconnect()を使用してください。
関連項目
| enableHTTPFailover | () | メソッド |
public function enableHTTPFailover():void| バージョン : | Reactor 1.0.0 |
指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、Reactorが自動的にHTTPを通して接続を試みるようにします。 HTTPフェイルオーバーはデフォルトで有効です。 HTTP接続は永続ソケット接続より反応は悪いですが、より高いファイアーウォール越しの接続チャンスをもちます。 接続シーケンス、種類、ホストおよびポートの最もきめの細かいコントロールを行うためには、ConnectionManagerクラスを直接使用してください。
関連項目
| enableStatistics | () | メソッド |
public function enableStatistics():void| バージョン : | Reactor 1.0.0 |
このReactorオブジェクトへの統計の記録を有効化します。 統計を読み出すには、getStatistics()メソッドを使用します。
関連項目
| getAccountManager | () | メソッド |
public function getAccountManager():AccountManager| バージョン : | Reactor 1.0.0 |
アプリケーションの AccountManager インスタンスへの参照を返します。これは Reactor によって自動生成されます。 AccountManagerクラスはユーザーアカウント登録とログインに関する機能セットを提供します。 完全な詳細はAccountManagerクラスのメインクラスエントリーを参照してください。
戻り値AccountManager |
関連項目
| getClientManager | () | メソッド |
public function getClientManager():ClientManager| バージョン : | Reactor 1.0.0 |
アプリケーションのClientManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。ClientManagerクラスはClientインスタンスへのアクセスを作成・提供します。 Clientインスタンスはサーバー上のクライアントに関するクライアント属性、IPアドレス、pingと接続時間などの情報を格納します。 完全な詳細についてはClientManagerクラスについてのメインクラスのエントリを参照してください。
戻り値ClientManager |
関連項目
| getConnectionManager | () | メソッド |
public function getConnectionManager():ConnectionManager| バージョン : | Reactor 1.0.0 |
アプリケーションのConnectionManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。ConnectionManagerクラスはサーバーへの接続を確立するために使用されます。 完全な詳細についてはConnectionManagerクラスのメインクラスエントリーを参照してください。
戻り値ConnectionManager |
関連項目
| getConnectionMonitor | () | メソッド |
public function getConnectionMonitor():ConnectionMonitor| バージョン : | Reactor 1.0.0 |
ConnectionMonitorインスタンスへの参照を返します。これはハートビート(ping)と自動切断・再接続機能を管理します。
戻り値ConnectionMonitor |
関連項目
| getLog | () | メソッド |
public function getLog():Logger| バージョン : | Reactor 1.0.0 |
デバッギングログへの参照を返します。これはクライアントにおいて発生したオペレーションを記述し、低水準のクライアント-サーバー間通信も表示できます。
戻り値Logger |
関連項目
| getMessageManager | () | メソッド |
public function getMessageManager():MessageManager| バージョン : | Reactor 1.0.0 |
アプリケーションのMessageManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。MessageManagerクラスはサーバーとのメッセージ送受信に関する機能セットを提供します。 完全な詳細についてはMessageManagerクラスについてのメインクラスのエントリを参照してください。
戻り値MessageManager |
関連項目
| getRoomManager | () | メソッド |
public function getRoomManager():RoomManager| バージョン : | Reactor 1.0.0 |
アプリケーションのRoomManagerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。RoomManagerクラスはルームを生成、破壊、観戦、入室、そしてアクセスするために使用します。
戻り値RoomManager |
関連項目
| getServer | () | メソッド |
public function getServer():Server| バージョン : | Reactor 1.0.0 |
アプリケーションのServerインスタンスへの参照を返します。これはReactorによって自動的に生成されます。Serverクラスはグローバルなサーバーのデータと関数へのアクセスを提供します。 完全な詳細についてはServerクラスについてのメインクラスのエントリを参照してください。
戻り値Server |
関連項目
| getSessionID | () | メソッド |
public function getSessionID():String| バージョン : | Reactor 1.0.0 |
利用可能であれば、この Reactor インスタンスにおける Union のセッションIDになります。
戻り値String |
| getStatistics | () | メソッド |
public function getStatistics():Statistics| バージョン : | Reactor 1.0.0 |
この接続に関するStatisticsオブジェクトへの参照を返します。これはKB/sの転送レートと送受信したメッセージ数のような数的指標を提供します。 統計の記録に関するパフォーマンスコストのため、getStatistics()によって返されるStatisticsオブジェクトはデフォルトでは無効で、何のデータも提供しません。 統計の記録を有効化するには、ReactorクラスのenableStatistics()メソッドを実行します。
戻り値Statistics |
関連項目
| getSystem | () | メソッド |
public function getSystem():System| バージョン : | Reactor 1.0.0 |
Systemクラスへの参照を返します。これのstatic変数はReactorのバージョン情報を提供します。
戻り値System |
関連項目
| isHTTPFailoverEnabled | () | メソッド |
public function isHTTPFailoverEnabled():Boolean| バージョン : | Reactor 1.0.0 |
指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、Reactorが自動的にHTTPを通して接続を試みるかどうかを示します。
戻り値Boolean |
関連項目
| isReady | () | メソッド |
public function isReady():Boolean| バージョン : | Reactor 1.0.0 |
Reactorが現在アクティブで完全に初期化されたサーバーへの接続を持っているかどうかを示すBooleanを返します。
戻り値Boolean — クライアントがready状態にあればtrueを返します。そうでなければfalseを返します。 |
関連項目
| loadConfig | () | メソッド |
public function loadConfig(configURL:String):void| バージョン : | Reactor 1.0.0 |
クライアントのコンフィグファイルをロードします。 ファイルの読み込みが完了すると、クライアントはコンフィグファイルで指定された設定を使い、自動的にサーバーへの接続を試行します。 コンフィグファイルは次のようなフォーマットです。
<?xml version="1.0"?>
<config>
<connections>
<connection host="hostNameOrIP1" port="portNumber1" type="connectionType1" senddelay="milliseconds1" />
<connection host="hostNameOrIP2" port="portNumber2" type="connectionType2" senddelay="milliseconds2" />
...
<connection host="hostNameOrIPn" port="portNumbern" type="connectionTypen" senddelay="millisecondsn" />
</connections>
<autoreconnectfrequency>frequency</autoreconnectfrequency>
<connectiontimeout>duration</connectiontimeout>
<heartbeatfrequency>frequency</heartbeatfrequency>
<readytimeout>timeout</readytimeout>
<loglevel>level</loglevel>
</config>
<?xml version="1.0"?>
<config>
<connections>
<connection host="tryunion.com" port="80" />
</connections>
<logLevel>DEBUG</logLevel>
<autoreconnectfrequency>10000</autoreconnectfrequency>
<connectiontimeout>30000</connectiontimeout>
<heartbeatfrequency>10000</heartbeatfrequency>
<readytimeout>5000</readytimeout>
</config>
パラメータ
configURL:String |
| self | () | メソッド |
public function self():IClient| バージョン : | Reactor 1.0.0 |
アプリケーション自身のIClientオブジェクト(つまり、"現クライアント")への参照を返します。
戻り値IClient — IClientインスタンスです。 |
| setServer | () | メソッド |
public function setServer(host:String, ... ports):void| バージョン : | Reactor 1.0.0 |
将来の接続試行時のためにホストとポートを指定します。 setServer()メソッドは新しい接続開始の試行を行いません。 サーバーを指定したあとに接続するには、Reactorのconnect()メソッドを使用します。
パラメータ
host:String — 実行中のUnion Serverのドメインのストリング名かIPアドレスです。 詳細については、connect()メソッドを参照してください。 | |
... ports — ReactorがUnionサーバーへの接続を試行するべきポートのint値のリストです。 詳細については、connect()メソッドのportパラメータを参照してください。 |
関連項目
| updateSnapshot | () | メソッド |
public function updateSnapshot(snapshot:Snapshot):void| バージョン : | Reactor 1.0.0 |
指定のスナップショットオブジェクトをサーバーから得られる最新の情報に更新します。 スナップショットの詳細については、Snapshotクラスを参照してください。
パラメータ
snapshot:Snapshot — 更新されるスナップショットオブジェクトです。 いずれかのSnapshotのサブクラスのインスタンスである必要があります(例えば、ClientListSnapshot)。 |
関連項目
| CLOSE | イベント |
ReactorEventnet.user1.reactor.ReactorEvent.CLOSEサーバーへの接続が失われるか、接続の試行が失敗するときに送出されます。 接続失敗と切断の個別のイベントはConnectionManagerクラスかIConnectionを実装する全てのクラスを通して別々に制御できます。
関連項目
| PROTOCOL_INCOMPATIBLE | イベント |
ReactorEventnet.user1.reactor.ReactorEvent.PROTOCOL_INCOMPATIBLE
クライアントがUnionサーバーに接続したときUPC仕様バージョンがクライアントのUPCバージョンと一致しないと送出されます。
UPC仕様バージョンは次のフォーマットを取ります: メジャー番号.マイナー番号.リビジョン番号。 例えば、バージョン番号1.2.0においてはメジャー番号は1、マイナー番号は2、リビジョン番号は0です。 クライアントのメジャー番号、マイナー番号、リビジョン番号が全てサーバーのメジャー番号、マイナー番号、リビジョン番号と一致した場合にサーバーはクライアントと互換性があると判断されます。 そうでない場合は:
UPC仕様はこちらhttp://unionplatform.com/specs/upc/からアクセスできます。
関連項目
| READY | イベント |
ReactorEventnet.user1.reactor.ReactorEvent.READYサーバーへの接続が確立され、完全に初期化されたときに送出されます。 READYが発生した後、Reactorクライアントはサーバーと自由に通信を開始できます。
関連項目