パッケージnet.user1.reactor
クラスpublic class Reactor
継承Reactor Inheritance flash.events.EventDispatcher

バージョン : Reactor 1.0.0

Reactorクラスは全てのReactorクライアントアプリケーションのルートクラスです。 Unionサーバーへ接続するための基本的なツールを提供し、次を含むReactorシステムモジュールのコアへのアクセスをアプリケーションに与えます。 クライアントアプリケーションをUnionサーバーに接続するには、次のようにReactorクラスのconnect()メソッドを使用します。
  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); 
  
アプリケーションのスタートアップコードは通常はReactor.READYリスナー内に配置されます。 例えば、
  private function readyListener (e:ReactorEvent):void {
    // コネクションが使用可能になると、安全にサーバーと
    // 通信できます。例えば、このコードは新たなチャットルームを作成します:
    chatRoom = reactor.getRoomManager().createRoom("examples.chat");
  
    // そしてこのコードでそのルームに入室します。
    chatRoom.join();
  }
  

関連項目

ReactorEvent.READY


パブリック メソッド
 メソッド定義元
  
Reactor(configURL:String, traceLogMessages:Boolean = true)
コンストラクタです。新しいReactorインスタンスを初期化します。
Reactor
  
connect(host:String = null, ... ports):void
connect()メソッドは指定したホストとポートにあるサーバーへの接続を試行します。
Reactor
  
指定のホストとポートへの接続を試行するとき、Reactorが永続ソケット接続のみを使用するようにします。
Reactor
  
このReactorオブジェクトへの統計の記録を無効化します。
Reactor
  
disconnect():void
サーバーへの全ての接続を終了させます。
Reactor
  
dispose():void
このオブジェクトを永久に無効化し、その全リソースを解放します。
Reactor
  
指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、Reactorが自動的にHTTPを通して接続を試みるようにします。
Reactor
  
この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
  
指定の全てのホストとポートを通した永続ソケット接続の確立が不可能なとき、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
Events
 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()メソッドのhostportsパラメータを通して指定することで自動的に生成します。 次に、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は指定順にポートへの接続を試行します。 例えば、ports9100, 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

関連項目

net.reactor.logger.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ドキュメントが持つタグと属性は次のような意味です: 例えば、次の設定ファイルは tryunion.com ポート80で実行中のUnionサーバーにログレベル DEBUG で接続するために使用できます。
     <?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)。

関連項目

Snapshot
Event Detail
CLOSE イベント
Event Object Type: ReactorEvent
ReactorEvent.type variable = net.user1.reactor.ReactorEvent.CLOSE

サーバーへの接続が失われるか、接続の試行が失敗するときに送出されます。 接続失敗と切断の個別のイベントはConnectionManagerクラスかIConnectionを実装する全てのクラスを通して別々に制御できます。

関連項目

PROTOCOL_INCOMPATIBLE イベント  
Event Object Type: ReactorEvent
ReactorEvent.type variable = net.user1.reactor.ReactorEvent.PROTOCOL_INCOMPATIBLE

クライアントがUnionサーバーに接続したときUPC仕様バージョンがクライアントのUPCバージョンと一致しないと送出されます。

UPC仕様バージョンは次のフォーマットを取ります: メジャー番号.マイナー番号.リビジョン番号。 例えば、バージョン番号1.2.0においてはメジャー番号は1、マイナー番号は2、リビジョン番号は0です。 クライアントのメジャー番号、マイナー番号、リビジョン番号が全てサーバーのメジャー番号、マイナー番号、リビジョン番号と一致した場合にサーバーはクライアントと互換性があると判断されます。 そうでない場合は:

UPC仕様はこちらhttp://unionplatform.com/specs/upc/からアクセスできます。

関連項目

READY イベント  
Event Object Type: ReactorEvent
ReactorEvent.type variable = net.user1.reactor.ReactorEvent.READY

サーバーへの接続が確立され、完全に初期化されたときに送出されます。 READYが発生した後、Reactorクライアントはサーバーと自由に通信を開始できます。

関連項目