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

バージョン : Reactor 1.0.0

ClientManagerクラスはUnionサーバーに接続しているクライアントを表すClientインスタンスへの中央管理的なアクセスを提供します。 現クライアントに把握されている(例えば、現クライアントと同じルームに入室しているクライアント)いずれのクライアントもClientManagerのgetClient()メソッドを通してアクセスできます。 例えば、

reactor.getClientManager().getClient(someClientID);

現クライアントのサーバー上のクライアントリストとサーバーの状態との同期を保つには、watchForClients()メソッドを次のように使用してください:

reactor.getClientManager().watchForClients();

ClientManagerを使用してクライアントオブジェクトに使用するデフォルトのカスタムクラスを指定することもできます。 setDefaultClientClass()メソッドを参照してください。

関連項目

Client
watchForClients()
setDefaultClientClass()


パブリック メソッド
 メソッド定義元
  
ClientManager(roomManager:RoomManager, accountManager:AccountManager, connectionManager:ConnectionManager, messageManager:MessageManager, server:Server, log:Logger)
コンストラクタ
ClientManager
  
ban(address:String, duration:int, reason:String = null):void
指定したアドレス(通常はIPアドレス)の全てのクライアントを切断し、今後一切そのアドレスからのクライアント接続を防止します。
ClientManager
  
clientIsKnown(clientID:String):Boolean
指定のclientIDのクライアントが現クライアントによって把握されているかどうかを示すBoolean値を返します。
ClientManager
  
dispose():void
このオブジェクトを永久に無効化します。
ClientManager
  
getAttributeForClients(clientIDs:Array, attrName:String, attrScope:String):Array
Returns an array of objects containing values for the specified attribute for all clients in supplied clientIDs.
ClientManager
  
ClientManager
  
getClient(clientID:String, scope:String = null):IClient
指定のクライアントを表すオブジェクトを返します。 デフォルトでは、そのオブジェクトはnet.user1.reactor.Clientクラスのインスタンスです。
ClientManager
  
getClientByAttribute(attributeName:String, attributeValue:String, attributeScope:String = null, roomScope:String = null):IClient
指定した属性名と値と一致する属性名と値を持っているようなクライアントで、ClientManagerが把握している最初のものを返します。
ClientManager
  
getClientByUserID(userID:String, scope:String = null):IClient
userIDによって指定されるアカウントにログインしたクライアントを返します。
ClientManager
  
getClients():Array
現クライアントが把握している全てのクライアントオブジェクトのリストを返します。
ClientManager
  
このアプリケーション内のクライアントが使用するグローバルのデフォルトクラスを返します。
ClientManager
  
getInternalClient(clientID:String):Client
指定したクライアントIDの内部のClientオブジェクトを返します。
ClientManager
  
現クライアントが把握しているClientオブジェクトのハッシュを返します。ハッシュキーはクライアントID、ハッシュ値はClientオブジェクトです。
ClientManager
  
自分自身を除いて、現クライアントがこれまでに把握したクライアントの合計数を返します。
ClientManager
  
Returns the number of clients known to Reactor.
ClientManager
  
もしClientManagerがクライアントを監視している場合、getNumClientsOnServer()はサーバー上のクライアント数を返します。それ以外の場合は、getNumClientsOnServer()は0を返します。
ClientManager
  
hasWatchedClient(clientID:String):Boolean
もし指定したuserIDのクライアントが現在監視アカウントリスト内にある場合、trueを返します。それ以外の場合はfalseを返します。
ClientManager
  
isObservingClient(clientID:String):Boolean
もし指定したuserIDのクライアントが現在観察されている場合、trueを返します。それ以外の場合はfalseを返します。
ClientManager
  
ClientManager
  
現クライアントが現在クライアントを監視しているかどうかを示します。
ClientManager
  
kickClient(clientID:String):void
指定されたクライアントをサーバーから切断します。
ClientManager
  
observeClient(clientID:String):void
現クライアントをclientIDで指定したクライアントのオブザーバーとして登録するようにサーバーに要求します。
ClientManager
  
sendMessage(messageName:String, clientIDs:Array = null, filters:IFilter = null, ... rest):void
Sends a message to a set of specified clientIDs.
ClientManager
  
setDefaultClientClass(defaultClass:Class):void
クラスをReactorアプリケーション内の全クライアントのデフォルトクラスとして使用するように割り当てます。
ClientManager
  
BANされたアドレスの監視を止めるようサーバーに要求します。
ClientManager
  
クライアントの監視を停止するようにサーバーに要求します。
ClientManager
  
unban(address:String):void
指定したアドレス(通常はIPアドレス)で現在有効な全てのBANを解除します。
ClientManager
  
サーバーにBANされたクライアントアドレスの一覧の送信を要求し、それからそのアドレスがBANかBANを解除されるとき常に通知を送信します。
ClientManager
  
現在サーバーに接続中のクライアントのリストを送信し、その後クライアントが接続か切断したときにはいつでも通知を送信するようにサーバーに要求します。
ClientManager
Events
 Event Summary 定義元
   この ClientManager がUnionサーバーから、あるクライアントアドレスがBANされたと通知を受けたときに送出されます。ClientManager
   この ClientManager がUnionサーバーから、あるクライアントアドレスのBANが解除されたと通知を受けたときに送出されます。ClientManager
   先に行われた Client.ban() または ClientManager.ban() 要求の結果を受け取ったときに送出されます。ClientManager
   ClientManagerがUnionサーバーからクライアントの接続を通知されたときに送出されます。ClientManager
   ClientManagerがUnionサーバーからクライアントの切断を通知されたときに送出されます。ClientManager
   先に行われた Client.kick() または ClientManager.kickClient() 要求の結果を受け取ったときに送出されます。ClientManager
   現クライアントがクライアントを観察するときに送出されます。ClientManager
   先に行われた Client.observe() か ClientManager.observeClient() 要求の結果を受信したときに送出されます。ClientManager
   現クライアントがクライアントの観察を停止するときに送出されます。ClientManager
   先に行われた Client.stopObserving() か ClientManager.stopObservingClient() 要求の結果を受信したときに送出されます。ClientManager
   先に行われた ClientManager.stopWatchingForBannedAddresses() の呼び出し結果を受け取ったときに送出されます。ClientManager
   ClientManagerが先に行われたstopWatchingForClients()要求の結果を受信するときに送出されます。ClientManager
   ClientManager のクライアントリストが watchForClients() 要求のあとで同期したときに送出されます。ClientManager
   ClientManager のクライアントリストが watchForBannedAddresses() 要求のあとで同期したときに送出されます。ClientManager
   先に行われた ClientManager.unban() 要求の結果を受信したときに送出されます。ClientManager
   先に行われた ClientManager.watchForBannedAddresses() 呼び出しの結果を受信したときに送出されます。ClientManager
   ClientManagerが先に行われたwatchForClients()要求の結果を受信するときに送出されます。ClientManager
コンストラクタの詳細
ClientManager()コンストラクタ
public function ClientManager(roomManager:RoomManager, accountManager:AccountManager, connectionManager:ConnectionManager, messageManager:MessageManager, server:Server, log:Logger)

コンストラクタ

パラメータ
roomManager:RoomManager
 
accountManager:AccountManager
 
connectionManager:ConnectionManager
 
messageManager:MessageManager
 
server:Server
 
log:Logger
メソッドの詳細
ban()メソッド
public function ban(address:String, duration:int, reason:String = null):void

バージョン : Reactor 1.0.0

指定したアドレス(通常はIPアドレス)の全てのクライアントを切断し、今後一切そのアドレスからのクライアント接続を防止します。 デフォルトでは、ban() は管理者権限を必要とします。 他の種類の(例えばモデレーター)クライアントにアドレスのBANを許可するには、リモートクライアントのセキュリティロールをUnionサーバーのセキュリティドキュメントで記述されているように定義してください。

BANの試行結果は ClientManagerEvent.BAN_RESULT イベントを通して返されます。

パラメータ

address:String — BANを行うアドレス(通常はIPアドレス)です。
 
duration:int — BANの期間を秒数で表します。
 
reason:String (default = null) — 任意の、BANの理由を示すオプション文字列です。 理由の文字列はサーバー側のBANリストに保存されます。

関連項目



次のコードは架空のIP "1.2.3.4" を、"チートのため"という理由付きで10分間BANします。
     reactor.getClientManager().ban("1.2.3.4", 600, "For cheating");
     
clientIsKnown()メソッド 
public function clientIsKnown(clientID:String):Boolean

バージョン : Reactor 1.0.0

指定のclientIDのクライアントが現クライアントによって把握されているかどうかを示すBoolean値を返します。 クライアントは次の状況で把握されます:

パラメータ

clientID:String

戻り値
Boolean
dispose()メソッド 
public function dispose():void

このオブジェクトを永久に無効化します。 このオブジェクトは再利用できません。 dispose()メソッドの目的はこのオブジェクトをガーベッジコレクトの対象とすることです(例えば、.swfファイルをアンロードする前に)。 ClientManagerクラスのdispose()メソッドはReactorクラスのdispose()が発動したときに自動的に発動します。

getAttributeForClients()メソッド 
public function getAttributeForClients(clientIDs:Array, attrName:String, attrScope:String):Array

バージョン : Reactor 1.0.0

clientIDsで渡された全クライアントの指定の属性の値を保持するオブジェクトの配列を返します。 配列中の各オブジェクトはclientIDプロパティ(そのクライアントのID)とvalueプロパティ(その属性値)を持ちます。 value プロパティは、clientIDs の中に存在しないか指定した属性を持たないクライアントについては null になります。

クライアント属性についての詳細はClientクラスのsetAttribute()メソッドを参照してください。

パラメータ

clientIDs:Array — 指定した属性を受信するクライアントを示すクライアントIDの配列です。
 
attrName:String — 取り出す属性名です。
 
attrScope:String — 読み出す属性のスコープです。 グローバル属性にはnullを使用するか、省略してください。

戻り値
Array

関連項目



次のコードはgetAttributeForClients()を使って特定のルーム内にいる全クライアントのageを取得する方法の実演です。
     var theRoom:Room = reactor.getRoomManager().getRoom("examples.chatroom");
     var clientList:Array = theRoom.getClientIDs();
     // ここで、"age" 属性はグローバルなので、attrScopeは省略してあります。
     var attrList:Array = reactor.getClientManager().getAttributeForClients(
                                                                    clientList,
                                                                    "age");
     
     for each (var item:Object in attrList) {
       trace("The value of 'age' for client "
             + item.clientID + " is: " + item.value);
     }
getBannedAddresses()メソッド 
public function getBannedAddresses():Array

戻り値
Array
getClient()メソッド 
public function getClient(clientID:String, scope:String = null):IClient

バージョン : Reactor 1.0.0

指定のクライアントを表すオブジェクトを返します。 デフォルトでは、そのオブジェクトはnet.user1.reactor.Clientクラスのインスタンスです。 しかし、指定したスコープのクライアントとして自作クラスが指定されていた場合、オブジェクトはその自作クラスのインスタンスとなります。 ClientのカスタムクラスはIClientのsetClientClass()メソッド、RoomクラスのsetDefaultClientClass()メソッドとClientManagerのsetDefaultClientClass()メソッドを通して指定できます。

クライアントオブジェクトのクラスは次のように決定されます:

パラメータ

clientID:String — そのクライアントにサーバーが生成したクライアントIDです。
 
scope:String (default = null) — 完全修飾ルームID(たとえば、"examples.chatRoom")です。 グローバルスコープについてはnullを使用してください。

戻り値
IClient

関連項目



The following code retrieves a reference to the client with the ID "5":
     var client:Client = reactor.getClientManager().getClient("5");
     
getClientByAttribute()メソッド 
public function getClientByAttribute(attributeName:String, attributeValue:String, attributeScope:String = null, roomScope:String = null):IClient

バージョン : Reactor 1.0.0

指定した属性名と値と一致する属性名と値を持っているようなクライアントで、ClientManagerが把握している最初のものを返します。 一致する属性を持つクライアントがなかった場合、nullを返します。

パラメータ

attributeName:String — 一致させる属性名です。
 
attributeValue:String — 一致させる属性値です。
 
attributeScope:String (default = null) — 一致させる属性のスコープです。 グローバルスコープにはnullを使用します。
 
roomScope:String (default = null) — 完全修飾ルームID(たとえば、"examples.chatRoom")です。 詳細は、getClient()メソッドの"scope"パラメータを参照してください。

戻り値
IClient

関連項目

getClientByUserID()メソッド 
public function getClientByUserID(userID:String, scope:String = null):IClient

バージョン : Reactor 1.0.0

userIDによって指定されるアカウントにログインしたクライアントを返します。 もし指定したuserIDを使ってログインしているクライアントを把握していない場合、nullを返します。

パラメータ

userID:String — ユーザーアカウントのユーザーIDです。
 
scope:String (default = null) — 完全修飾ルームID(たとえば、"examples.chatRoom")です。 詳細については、ClientManagerのgetClient()メソッドの"scope"パラメータを参照してください。

戻り値
IClient

関連項目

getClients()メソッド 
public function getClients():Array

バージョン : Reactor 1.0.0

現クライアントが把握している全てのクライアントオブジェクトのリストを返します。 リスト内の各クライアントオブジェクトはnet.user1.reactor.Clientかカスタムクライアントクラスのどちらかのインスタンスであり、次のように決定されます:

戻り値
Array

関連項目

getDefaultClientClass()メソッド 
public function getDefaultClientClass():Class

バージョン : Reactor 1.0.0

このアプリケーション内のクライアントが使用するグローバルのデフォルトクラスを返します。

戻り値
Class

関連項目

getInternalClient()メソッド 
public function getInternalClient(clientID:String):Client

バージョン : Reactor 1.0.0

指定したクライアントIDの内部のClientオブジェクトを返します。 このメソッドは次の状況でのみ必要とされます。 CustomClientを拡張していない自作クライアントクラスを指定したとき、IClientを直接実装してClientインスタンスを構成する必要があります。 そのような構成されたインスタンスを得るために、自作クラスはgetInternalClient()を使用する必要があります。 そうでない場合は、クライアントアプリケーションはgetInternalClient()ではなく、getClient()を通してClientオブジェクトを取得するべきです。

パラメータ

clientID:String — サーバーが生成したクライアントIDです。

戻り値
Client

関連項目

getInternalClients()メソッド 
public function getInternalClients():Object

バージョン : Reactor 1.0.0

現クライアントが把握しているClientオブジェクトのハッシュを返します。ハッシュキーはクライアントID、ハッシュ値はClientオブジェクトです。 getClients()のクライアントオブジェクトはカスタムクライアントクラスを指定しているクライアントについてはカスタムクライアントクラスのインスタンスになる点がこのメソッドとは対照的です。 getInternalClients()はカスタムクライアントクラスの探索を行わないため、getClients()より高速です。

戻り値
Object

関連項目

getLifetimeNumClientsKnown()メソッド 
public function getLifetimeNumClientsKnown():int

バージョン : Reactor 1.0.0

自分自身を除いて、現クライアントがこれまでに把握したクライアントの合計数を返します。

戻り値
int

関連項目

getNumClients()メソッド 
public function getNumClients():int

バージョン : Reactor 1.0.0; Implementation fixed in 2.0.0

Returns the number of clients known to Reactor. ClientManagerがクライアントを監視しているとき(watchForClients()を参照してください)、getNumClients()は現在Unionサーバーに接続している実際のクライアント数を返します。 ClientManagerがクライアントを監視していないときは、getNumClients()は現クライアントが知っているクライアント数だけを返します。 例えば、 if the current client is in a room with three other clients, and has no other awareness of clients on the server, then getNumClients() will return 4, even though more than 4 clients might be connected to the server.

戻り値
int

関連項目

getNumClientsOnServer()メソッド 
public function getNumClientsOnServer():int

バージョン : Reactor 1.0.0

もしClientManagerがクライアントを監視している場合、getNumClientsOnServer()はサーバー上のクライアント数を返します。それ以外の場合は、getNumClientsOnServer()は0を返します。 ClientManager がクライアントを監視しているとき、getNumClientsOnServer() メソッドはgetNumClients()より高速な代替手段を提供します。

戻り値
int

関連項目

hasWatchedClient()メソッド 
public function hasWatchedClient(clientID:String):Boolean

バージョン : Reactor 1.0.0 #see watchForAccounts()

もし指定したuserIDのクライアントが現在監視アカウントリスト内にある場合、trueを返します。それ以外の場合はfalseを返します。

パラメータ

clientID:String

戻り値
Boolean
isObservingClient()メソッド 
public function isObservingClient(clientID:String):Boolean

バージョン : Reactor 1.0.0

もし指定したuserIDのクライアントが現在観察されている場合、trueを返します。それ以外の場合はfalseを返します。

パラメータ

clientID:String

戻り値
Boolean

関連項目

isWatchingForBannedAddresses()メソッド 
public function isWatchingForBannedAddresses():Boolean

戻り値
Boolean
isWatchingForClients()メソッド 
public function isWatchingForClients():Boolean

バージョン : Reactor 1.0.0

現クライアントが現在クライアントを監視しているかどうかを示します。

戻り値
Boolean

関連項目

kickClient()メソッド 
public function kickClient(clientID:String):void

バージョン : Reactor 1.0.0

指定されたクライアントをサーバーから切断します。 デフォルトでは、モデレーター権限が必要です。

キックの試行結果は ClientManagerEvent.KICK_RESULT イベントを通して返されます。

パラメータ

clientID:String — キックするクライアントのクライアントIDです。

observeClient()メソッド 
public function observeClient(clientID:String):void

バージョン : Reactor 1.0.0

現クライアントをclientIDで指定したクライアントのオブザーバーとして登録するようにサーバーに要求します。 この要求の結果はClientManagerによってトリガーされるClientEvent.OBSERVE_RESULTイベントを通して返されます。 もしその要求が成功すると、Reactorは(もしまだ無い場合は)そのクライアントについてのClientオブジェクトを生成し、ClientEvent.OBSERVEイベントがClientManagerによってトリガーされます。 Clientオブジェクトはサーバー側のそのクライアントの状態と同期されるようになります。 その後もし指定したクライアントの状態が変化すると、現クライアントは次の方法で通知を受けます:

クライアントの観察を停止するには、ClientのstopObserving()メソッドを使用してください。

クライアントの観察は、クライアントのマッチメイキングか管理者インターフェースを用いるアプリケーションでよくあるように、クライアントが任意のクライアントリストの状態を常に通知してもらいたいときに使用します。

パラメータ

clientID:String — 観察するクライアントのclientIDです。

関連項目

sendMessage()メソッド 
public function sendMessage(messageName:String, clientIDs:Array = null, filters:IFilter = null, ... rest):void

バージョン : Reactor 1.0.0

Sends a message to a set of specified clientIDs. メッセージを一つのクライアントのみに送信するには、ClientのsendMessage()メソッドを使用してください。

メッセージを受信するには、受信するクライアントはMessageManagerのaddMessageListener()メソッドを通してメッセージリスナーを登録する必要があります。 例えば、

    // "SMILE"と名づけられたメッセージをclientIDが 2, 34, 84 のクライアントに送信します
    reactor.getClientManager().sendMessage("SMILE", ["2", "34", "84"]);
    
    // メッセージを登録する受信側のクライアントのコードです
    connection.getMessageManager().addMessageListener("SMILE",
                                                      smileListener);
    
    // SMILEメッセージを受信したときに呼び出されるメソッドです
    protected function privateMessageListener (fromClient:IClient,
                                               messageText:String):void {
      trace("Smile from client: " + fromClient.getClientID());
    }
    

ルーム内の全てのクライアントにメッセージを送信するには、RoomのsendMessage()メソッドを使用します。

サーバー上の全てのクライアントにメッセージを送信するには、ServerのsendMessage()メソッドを使用します。

パラメータ

messageName:String — 送信するメッセージ名です。
 
clientIDs:Array (default = null) — そのメッセージの受信者クライアントIDの配列です。
 
filters:IFilter (default = null) — メッセージに適用する一つ以上のフィルターを指定します。 フィルターは各クライアントがメッセージを受信するために満たさなければいけない条件を指定します。 たとえば、メッセージを受信するのは属性"team"が"red"に設定されたクライアントだけといった指示ができます。 完全な詳細については、IFilterインターフェースを参照してください。 もしフィルターがnullなら、全ての指定クライアントがメッセージを受信します。
 
... rest — オプションです。引数のストリング値をカンマで区切ったリストとしてこのメッセージに付与します。 これらのメッセージはメッセージの受信を登録している全てのリスナーに渡されることになります。 MessageManagerのaddMessageListener()メソッドを参照してください。

関連項目

setDefaultClientClass()メソッド 
public function setDefaultClientClass(defaultClass:Class):void

バージョン : Reactor 1.0.0

クラスをReactorアプリケーション内の全クライアントのデフォルトクラスとして使用するように割り当てます。

デフォルトでは、全てのクライアントはIClientを実装したClientクラスのインスタンスによって表されます。 しかし、自作クラスによってクライアントを表すこともできます。 自作クライアントクラスはClientクラスのsetClientClass()メソッドを通して、基本的にクライアントごとに指定できます。 または、RoomクラスのsetDefaultClientClass()メソッドを通して自作クライアントクラスをルームごとに指定することができます。 または、ClientManagerクラスのsetDefaultClientClass()メソッドを用いると、自作クライアントクラスをグローバルに割り当てられます。 setDefaultClientClass()を通してクラスがグローバルに指定されているときは、それがClientManagerのscopeが未指定のgetClient()メソッドを通して取得される全てのクライアントのクライアントクラスとして使用されます。

RoomのsetDefaultClientClass()メソッドを通して指定された全ての自作クラスはグローバルのデフォルトクライアントクラスを上書きします。 似たように、ClientのsetClientClass()メソッドを通して指定された自作のクラスはいずれもルームとグローバルのデフォルトクライアントクラスをオーバーライドします。

パラメータ

defaultClass:Class — グローバルのデフォルトクライアントクラスです。 クラスは通常はCustomClientの派生ですが、IClientインターフェイスを実装したどんなクラスでも使えます。

関連項目

stopWatchingForBannedAddresses()メソッド 
public function stopWatchingForBannedAddresses():void

バージョン : Reactor 1.0.0

BANされたアドレスの監視を止めるようサーバーに要求します。 応答として、サーバーはそのアドレスがBANされるとき、またはBANを解除されるときにもう通知を送信しません。

stopWatchingForBannedAddresses() 要求の結果は ClientManagerEvent.STOP_WATCHING_FOR_BANNED_ADDRESSES_RESULT イベントを通して返されます。

関連項目

stopWatchingForClients()メソッド 
public function stopWatchingForClients():void

バージョン : Reactor 1.0.0

クライアントの監視を停止するようにサーバーに要求します。 応答として、サーバーはクライアントが接続または切断するときにもう通知を送信しません。

stopWatchingForClients()要求の結果はClientManagerEvent.STOP_WATCHING_FOR_CLIENTS_RESULTを通して返されます。

関連項目

unban()メソッド 
public function unban(address:String):void

バージョン : Reactor 1.0.0

指定したアドレス(通常はIPアドレス)で現在有効な全てのBANを解除します。 デフォルトでは、unban() は管理者権限を要求します。 他の種類の(例えばモデレーター)クライアントにアドレスのBAN解除を許可するには、リモートクライアントのセキュリティロールをUnionサーバーのセキュリティドキュメントで記述されているように定義してください。

BAN解除の試行結果は ClientManagerEvent.UNBAN_RESULT イベントを通して返されます。

パラメータ

address:String — BANを解除するアドレス(通常はIPアドレス)です。

関連項目



次のコードは架空のIP "1.2.3.4" のBANを解除します。
     reactor.getClientManager().ban("1.2.3.4", 600, "For cheating");
     
watchForBannedAddresses()メソッド 
public function watchForBannedAddresses():void

バージョン : Reactor 1.0.0

サーバーにBANされたクライアントアドレスの一覧の送信を要求し、それからそのアドレスがBANかBANを解除されるとき常に通知を送信します。 BANリストの準備ができたとき、ClientManagerは ClientManagerEvent.SYNCHRONIZE_BANLIST イベントを送出します。 その後、クライアントアドレスがBANされるとき、ClientManagerは ClientManagerEvent.ADDRESS_BANNEDイベントを送出し、クライアントアドレスのBANが解除されるとき、ClientManagerは ClientManagerEvent.ADDRESS_UNBANNEDイベントを送出します。

watchForBannedAddresses()要求の結果は ClientManagerEvent.WATCH_FOR_BANNED_ADDRESSES_RESULT イベントを通して返されます。

デフォルトでは、watchForBannedAddresses() は管理者権限を要求します。 他の種類の(例えばモデレーター)クライアントにBANされたアドレスの一覧へのアクセスを許可するには、リモートクライアントのセキュリティロールをUnionサーバーのセキュリティドキュメントで記述されているように定義してください。

関連項目

stopWatchingForBannedAddresses()
watchForClients()メソッド 
public function watchForClients():void

バージョン : Reactor 1.0.0

現在サーバーに接続中のクライアントのリストを送信し、その後クライアントが接続か切断したときにはいつでも通知を送信するようにサーバーに要求します。 クライアントリストが準備できると、ClientManagerはClientManagerEvent.SYNCHRONIZEイベントを送出します。 その後のクライアントの接続はClientManagerEvent.CLIENT_CONNECTEDイベントをトリガーします。 その後の切断はClientManagerEvent.CLIENT_DISCONNECTEDイベントをトリガーします。

watchForClients()への応答としてClientManagerのクライアントリストに追加されたクライアントはロードされた属性を持っていません。 特定のクライアントの属性をロードするには、IClientのobserve()メソッドあるいはClientManagerのobserveClient()メソッドを使用してください。 デフォルトの設定では、あるクライアントの属性はそのクライアントを含むルームに入室することによってもロードされます。

As an alternative to watchForClients(), applications can maintain an arbitrary shared list of clients (with attributes automatically loaded or not) by creating an application room and then forcing all clients in the application to join that room. それに含まれずにリストをロードしたいクライアントはアプリケーションルームを観察してRoomEvent.ADD_OCCUPANTおよびRoomEvent.REMOVE_OCCUPANTイベントを登録することができます。 リスト内のクライアントはRoomクラスのsetUpdateLevels()メソッドを通してルームの更新を切ることでクライアントリストの更新を無視できます。 クライアントリストを管理したいアプリケーションでは、watchForClients()よりもルームに基づいたクライアントリストが通常はより適しています。 watchForClients()メソッドは主にUnionサーバーのルームとクライアントのリストがあらかじめわかっておらず、(サーバー管理アプリケーションにおいてしばしばあるように)制御もできない場合のためのものです。 watchForClients()の最終的な代替手段として、アプリケーションはサーバー上の一時的なクライアントリストをロードするためにClientListSnapshotクラスを使用できます。

watchForClients()要求の結果は ClientManagerEvent.WATCH_FOR_CLIENTS_RESULT イベントを通して返されます。

関連項目

Event Detail
ADDRESS_BANNED イベント
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.ADDRESS_BANNED

この ClientManager がUnionサーバーから、あるクライアントアドレスがBANされたと通知を受けたときに送出されます。 このイベントはこの ClientManager がBANされたアドレスを監視している(watchForBannedAddresses()を参照)ときにのみ有効です。

関連項目

ADDRESS_UNBANNED イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.ADDRESS_UNBANNED

この ClientManager がUnionサーバーから、あるクライアントアドレスのBANが解除されたと通知を受けたときに送出されます。 このイベントはこの ClientManager がBANされたアドレスを監視している(watchForBannedAddresses()を参照)ときにのみ有効です。

関連項目

BAN_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.BAN_RESULT

先に行われた Client.ban() または ClientManager.ban() 要求の結果を受け取ったときに送出されます。

関連項目

CLIENT_CONNECTED イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.CLIENT_CONNECTED

ClientManagerがUnionサーバーからクライアントの接続を通知されたときに送出されます。 このイベントはClientManagerがクライアントを監視しているときにのみ利用可能です(watchForClients()を参照してください)。

関連項目

CLIENT_DISCONNECTED イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.CLIENT_DISCONNECTED

ClientManagerがUnionサーバーからクライアントの切断を通知されたときに送出されます。 このイベントはClientManagerがクライアントを監視している(watchForClients()を参照)か、切断したクライアントを観察しているとき(observeClient()を参照)にのみ利用可能です。

関連項目

KICK_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.KICK_RESULT

先に行われた Client.kick() または ClientManager.kickClient() 要求の結果を受け取ったときに送出されます。

関連項目

OBSERVE イベント  
Event Object Type: ClientEvent
ClientEvent.type variable = net.user1.reactor.ClientEvent.OBSERVE

現クライアントがクライアントを観察するときに送出されます。 観察下にあるクライアントにはClientEventのgetClient()メソッドを通してアクセスできます。

関連項目

OBSERVE_RESULT イベント  
Event Object Type: ClientEvent
ClientEvent.type variable = net.user1.reactor.ClientEvent.OBSERVE_RESULT

先に行われた Client.observe() か ClientManager.observeClient() 要求の結果を受信したときに送出されます。

関連項目

STOP_OBSERVING イベント  
Event Object Type: ClientEvent
ClientEvent.type variable = net.user1.reactor.ClientEvent.STOP_OBSERVING

現クライアントがクライアントの観察を停止するときに送出されます。 もはや観察されていないクライアントにはClientEventのgetClient()メソッドを通してアクセスできます。

関連項目

STOP_OBSERVING_RESULT イベント  
Event Object Type: ClientEvent
ClientEvent.type variable = net.user1.reactor.ClientEvent.STOP_OBSERVING_RESULT

先に行われた Client.stopObserving() か ClientManager.stopObservingClient() 要求の結果を受信したときに送出されます。

関連項目

STOP_WATCHING_FOR_BANNED_ADDRESSES_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.STOP_WATCHING_FOR_BANNED_ADDRESSES_RESULT

先に行われた ClientManager.stopWatchingForBannedAddresses() の呼び出し結果を受け取ったときに送出されます。

関連項目

STOP_WATCHING_FOR_CLIENTS_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.STOP_WATCHING_FOR_CLIENTS_RESULT

ClientManagerが先に行われたstopWatchingForClients()要求の結果を受信するときに送出されます。 試行結果を診断するには、getStatus()を使用します。これは次の値をとる可能性があります。

関連項目

SYNCHRONIZE イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.SYNCHRONIZE

ClientManager のクライアントリストが watchForClients() 要求のあとで同期したときに送出されます。

関連項目

SYNCHRONIZE_BANLIST イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.SYNCHRONIZE_BANLIST

ClientManager のクライアントリストが watchForBannedAddresses() 要求のあとで同期したときに送出されます。

関連項目

UNBAN_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.UNBAN_RESULT

先に行われた ClientManager.unban() 要求の結果を受信したときに送出されます。

関連項目

WATCH_FOR_BANNED_ADDRESSES_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.WATCH_FOR_BANNED_ADDRESSES_RESULT

先に行われた ClientManager.watchForBannedAddresses() 呼び出しの結果を受信したときに送出されます。

関連項目

WATCH_FOR_CLIENTS_RESULT イベント  
Event Object Type: ClientManagerEvent
ClientManagerEvent.type variable = net.user1.reactor.ClientManagerEvent.WATCH_FOR_CLIENTS_RESULT

ClientManagerが先に行われたwatchForClients()要求の結果を受信するときに送出されます。 要求の結果を確認するためには、getStatus()を使用してください。これは次の戻り値のうちどれかになります:

関連項目