| パッケージ | flash.net |
| public class XMLSocket | |
| 継承 | XMLSocket EventDispatcher Object |
XMLSocket.connect() メソッドが接続できる TCP ポートの番号は、1024 以上です。この制限により、XMLSocket オブジェクトと通信するサーバーデーモンにも、1024 以上のポート番号を割り当てる必要があります。1024 未満のポート番号は、FTP、Telnet、HTTP などのシステムサービスによって使用されることが多いため、XMLSocket オブジェクトはセキュリティ上の理由からこれらのポートにアクセスできません。ポート番号の制限により、これらのリソースが不適切にアクセスおよび乱用される可能性が少なくなります。
XMLSocket オブジェクトと通信するようにサーバーを設定すると、問題が発生する可能性があります。アプリケーションがリアルタイムのインタラクティブ機能を必要としない場合は、XMLSocket クラスの代わりに、URLLoader クラスを使用します。XMLSocket クラスのメソッドを使用するには、まず new XMLSocket コンストラクタを使用して XMLSocket オブジェクトを作成する必要があります。
このクラスを使用するときは、Flash Player セキュリティモデルを考慮してください。
詳細については、次のトピックを参照してください。
関連項目
| プロパティ | 定義 | ||
|---|---|---|---|
| connected : Boolean
[read-only]
この XMLSocket オブジェクトが現在、接続されているかどうかを示します。
| XMLSocket | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| メソッド | 定義 | ||
|---|---|---|---|
| XMLSocket(host:String = null, port:int = 0)
新しい XMLSocket オブジェクトを作成します。
| XMLSocket | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
| close():void
XMLSocket オブジェクトで指定された接続を閉じます。
| XMLSocket | ||
| connect(host:String, port:int):void
指定された TCP ポートを使用して指定されたインターネットホストへの接続を確立します。
| XMLSocket | ||
![]() | dispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
| EventDispatcher | |
![]() | hasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() | hasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
| Object | |
![]() | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
send(object:*):void
object パラメータで指定された XML オブジェクトまたはデータをストリングに変換し、その後ろにゼロ (0) バイトを付加してサーバーに転送します。 | XMLSocket | ||
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() | toString():String
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() | valueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
| Object | |
![]() | willTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 一覧 | 定義 | ||
|---|---|---|---|---|
| close | サーバーによりソケット接続が閉じられたときに送出されます。 | XMLSocket | ||
| connect |
XMLSocket.connect() メソッドの呼び出しが成功した後に送出されます。 | XMLSocket | ||
| data | 未処理のデータが送受信された後に送出されます。 | XMLSocket | ||
| ioError | 入出力エラーが発生して送信または受信操作が失敗したときに送出されます。 | XMLSocket | ||
| securityError |
XMLSocket.connect() メソッドの呼び出しによって、呼び出し元のセキュリティサンドボックスの外にあるサーバーや 1024 未満のポート番号に対して接続しようとしたときに送出されます。 | XMLSocket | ||
| connected | プロパティ |
connected:Boolean [read-only]
この XMLSocket オブジェクトが現在、接続されているかどうかを示します。connect イベントと ioError イベントに対して登録を行い、接続が成功したかどうかを調べることもできます。
public function get connected():Boolean
関連項目
| XMLSocket | () | コンストラクタ |
public 関数 XMLSocket(host:String = null, port:int = 0)
新しい XMLSocket オブジェクトを作成します。初期状態では、XMLSocket オブジェクトはサーバーに接続されません。オブジェクトをサーバーに接続するには、XMLSocket.connect() メソッドを呼び出す必要があります。
host:String (default = null) — FQDN (完全修飾ドメイン名)、つまり aaa.bbb.ccc.ddd という形式の IP アドレスです。null を指定して、SWF ファイルが存在するホストサーバーに接続することもできます。呼び出し元の SWF ファイルが Web ブラウザ内で実行されている場合は、host が SWF ファイルと同じドメイン内に存在する必要があります。
|
|
port:int (default = 0) — 接続の確立に使用するホスト上の TCP ポート番号です。ポリシーファイルを使用している場合を除き、ポート番号は 1024 以上である必要があります。
|
関連項目
| close | () | メソッド |
public function close():void
XMLSocket オブジェクトで指定された接続を閉じます。close イベントは、サーバーにより接続が閉じられたときのみ送出されます。close() メソッドを呼び出しても送出されません。
関連項目
| connect | () | メソッド |
public function connect(host:String, port:int):void指定された TCP ポートを使用して指定されたインターネットホストへの接続を確立します。デフォルトでは、ポリシーファイルを使用していない限り、番号が 1024 以上のポートにのみ接続できます。
XMLSocket.connected プロパティが true の場合、接続プロセスの初期段階は成功しています。XMLSocket.connected プロパティが false の場合、接続に失敗しています。
host パラメータに対して null を指定した場合は、XMLSocket.connect() を呼び出す SWF ファイルが存在するホストに接続します。たとえば、www.adobe.com から SWF ファイルをダウンロードし、host パラメータに null を指定した場合は、www.adobe.com の IP アドレスを入力した場合と同じ結果となります。
Flash Player 7 より前のバージョンの Player で SWF ファイルを実行している場合、host は、呼び出し元の SWF ファイルと同じスーパードメインに属している必要があります。たとえば、www.adobe.com に置かれた SWF ファイルからは、store.adobe.com にある SWF ファイルに対して変数の送受信を行えます。これは、どちらのファイルも adobe.com という同一のスーパードメインに属するためです。
Flash Player 7 以降で SWF ファイルを実行している場合、host は正確に同じドメインに置かれている必要があります。たとえば、www.adobe.com にある SWF ファイルが Flash Player 5 用にパブリッシュされているにもかかわらず、Flash Player 7 以降で実行されている場合は、このファイルは同様に www.adobe.com に置かれている SWF ファイルに対してのみ、変数の送受信を行えます。別のドメインに対して変数の送受信を行うには、アクセスする SWF ファイルをホストするサーバー上に、クロスドメインポリシーファイルを配置します。
デフォルトでは、host に渡す値は同じドメインに置かれている必要があり、port に渡す値は 1024 以上である必要があります。たとえば、www.adobe.com に置かれている SWF ファイルは、www.adobe.com に存在する SWF ファイルからしか変数を送受信できません。接続している SWF ファイルが置かれているホストとは異なるホスト上にあるソケットに接続する場合、または任意のホストでポート番号が 1024 より小さいポートに接続する場合は、接続するホストから xmlsocket: ポリシーファイルを取得する必要があります。詳細については、『ActionScript 3.0 のプログラミング』の「Flash Player セキュリティ」の章を参照してください。
host:String — FQDN (完全修飾ドメイン名)、つまり aaa.bbb.ccc.ddd という形式の IP アドレスです。null を指定して、SWF ファイルが存在するホストサーバーに接続することもできます。呼び出し元の SWF ファイルが Web ブラウザ内で実行されている場合は、host が SWF ファイルと同じドメイン内に存在する必要があります。
|
|
port:int — 接続の確立に使用するホスト上の TCP ポート番号です。ポリシーファイルを使用している場合を除き、ポート番号は 1024 以上である必要があります。
|
securityError:SecurityErrorEvent — 呼び出し元のセキュリティサンドボックス外のサーバーまたは 1024 より小さいポートに接続しようとした接続操作です。どちらの問題も、サーバーで XMLSocket ポリシーファイルを使用することで回避できます。 |
|
data:DataEvent — 未処理のデータを受信したときに送出されます。 |
|
connect:Event — ネットワーク接続が確立されたときに送出されます。 |
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。これは、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類すると回避できる場合があります。
|
|
SecurityError — 65535 より大きいソケットポートを指定することはできません。
|
関連項目
| send | () | メソッド |
public function send(object:*):void
object パラメータで指定された XML オブジェクトまたはデータをストリングに変換し、その後ろにゼロ (0) バイトを付加してサーバーに転送します。object が XML オブジェクトである場合、ストリングは XML オブジェクトの XML テキスト表現です。送信操作は非同期です。つまり、転送処理はただちに終了しますが、データが転送されるのは、その後です。XMLSocket.send() メソッドは、データが正常に転送されたかどうかを示す値を返しません。
XMLSocket.connect() を使用して、XMLSocket オブジェクトをサーバーに接続していない場合、XMLSocket.send() 操作は失敗します。
object:* — サーバーに転送する XML オブジェクトまたは他のデータです。
|
IOError — XMLSocket オブジェクトはサーバーに接続されません。
|
関連項目
| close | event |
flash.events.Event
flash.events.Event.CLOSE
サーバーによりソケット接続が閉じられたときに送出されます。close イベントは、サーバーにより接続が閉じられたときのみ送出されます。XMLSocket.close() メソッドを呼び出しても送出されません。
close イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 接続が閉じられたオブジェクトです。 |
| connect | event |
flash.events.Event
flash.events.Event.CONNECT
XMLSocket.connect() メソッドの呼び出しが成功した後に送出されます。
connect イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | ネットワーク接続を確立した Socket オブジェクトまたは XMLSocket オブジェクトです。 |
| data | event |
flash.events.DataEvent
flash.events.DataEvent.DATA
未処理のデータが送受信された後に送出されます。
data イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
data | Flash Player にロードされる未処理のデータです。 |
target | データを受け取る XMLSocket オブジェクトです。 |
| ioError | event |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
入出力エラーが発生して送信または受信操作が失敗したときに送出されます。
ioError イベントオブジェクトの type プロパティの値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
| securityError | event |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
XMLSocket.connect() メソッドの呼び出しによって、呼び出し元のセキュリティサンドボックスの外にあるサーバーや 1024 未満のポート番号に対して接続しようとしたときに送出されます。
SecurityErrorEvent.SECURITY_ERROR 定数は、securityError イベントオブジェクトの type プロパティ値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | セキュリティエラーを報告するネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連項目
socket という XMLSocket インスタンスを作成し、
次に示す ConfigureListeners() に socket を渡し、
XMLSocket の connect() メソッドを、ホスト名 "localhost" とポート
番号 8080.configureListeners() メソッドを呼び出して、
サポートされる各 XMLSocket イベントにリスナーを追加します。closeHandler() は close イベントをリッスンします。このイベントは
ネットワーク接続が閉じられた後に送出されます。connectHandler() は connect イベントをリッスンします。このイベントは
ネットワーク接続が確立されたときに送出されます。dataHandler() は data イベントをリッスンします。このイベントは
XMLSocket が新しいデータを受け取るたびに送出されます。progressHandler() は progress イベントをリッスンします。このイベントは
send() が呼び出されたとき、送信中に送出されます。securityErrorHandler() は securityError イベントをリッスンします。このイベントは
誤ったローカルでの再生に関するセキュリティ設定または 1024 より小さいポートを使用して、XMLSocket にアクセスしようとしたときに
送出されます。ioErrorHandler() は ioError イベントをリッスンします。このイベントは
データの送信または受信操作に失敗すると発生します。メモ :
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.XMLSocket;
public class XMLSocketExample extends Sprite {
private var hostName:String = "localhost";
private var port:uint = 8080;
private var socket:XMLSocket;
public function XMLSocketExample() {
socket = new XMLSocket();
configureListeners(socket);
socket.connect(hostName, port);
}
public function send(data:Object):void {
socket.send(data);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CLOSE, closeHandler);
dispatcher.addEventListener(Event.CONNECT, connectHandler);
dispatcher.addEventListener(DataEvent.DATA, dataHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
}
private function closeHandler(event:Event):void {
trace("closeHandler: " + event);
}
private function connectHandler(event:Event):void {
trace("connectHandler: " + event);
}
private function dataHandler(event:DataEvent):void {
trace("dataHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
}
}