Adobe® Flex® 4.1 リファレンスガイド
パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  索引  |  付録

言語リファレンスのみ       
flash.net 
SecureSocket 
パッケージflash.net
クラスpublic class SecureSocket
継承SecureSocket Inheritance Socket Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

SecureSocket クラスを使用すると、コード内のソケット接続で、Secure Sockets Layer(SSL)プロトコルおよび Transport Layer Security(TLS)プロトコルを利用することができます。

AIR プロファイルのサポート:この機能はすべてのデスクトップオペレーティングシステムでサポートされますが、モバイルデバイスではサポートされません。SecureSocket.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

SSL/TLS プロトコルによって、証明書を使用してホストの ID を認証するためのメカニズムが提供されます。また、ソケット経由の暗号化通信も利用できるようになります。SSLv3 および TLSv1 がサポートされます。サーバー証明書の検証は、信頼ストアとクライアントプラットフォームの証明書検証サポートを使用して実行されます。

SecureSocket クラスは、信頼できる有効な証明書を備えたサーバーにのみ接続します。サーバーの証明書に問題がある場合には、そのサーバーへの接続を選択することはできません。例えば、サーバーの証明書の有効期限が切れていたり、信頼できるルート証明書にサーバーの証明書がチェーンしていない場合、その証明書が有効であっても接続はできません。

SecureSocket クラスは、信頼できるサーバーに対して暗号化通信を行う場合に役立ちます。その他の点では、SecureSocket オブジェクトは、通常の Socket オブジェクトと同様に動作します。

SecureSocket クラスのメソッドを使用するには、まず new SecureSocket() コンストラクターを使用して SecureSocket オブジェクトを作成します。サーバーに接続するときに、サーバー証明書が検証されます。証明書が有効で信頼されている場合、接続が確立され、ソケットは connect イベントを送出します。証明書を検証できなかった場合、ソケットは IOError イベントを送出します。

重要:OCSP(Online Certificate Status Protocol)は、一部のオペレーティングシステムではサポートされません。また、ユーザーは、個々のコンピューターで OCSP チェックを無効にすることができます。OCSP がサポートされていないか無効になっていて、さらに、CRL(証明書失効リスト)を使用して行われる失効確認に必要な情報が証明書に含まれていない場合、証明書失効の確認は行われません。失効以外の内容が有効であれば、証明書は受け入れられます。その結果、失効した証明書の使用をサーバーが許可するおそれがあります。

例を表示

関連項目



パブリックプロパティ
 プロパティ定義元
 InheritedbytesAvailable : uint
[読み取り専用] 入力バッファーで読み取ることができるデータのバイト数です。
Socket
 Inheritedconnected : Boolean
[読み取り専用] この Socket オブジェクトが現在、接続されているかどうかを示します。
Socket
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
 Inheritedendian : String
データのバイト順を示します。
Socket
  AIR-only isSupported : Boolean
[静的] [読み取り専用] 現在のシステムでセキュアソケットがサポートされているかどうかを示します。
SecureSocket
 InheritedAIR-only localAddress : String
[読み取り専用] ローカルマシン上でこのソケットがバインドされている IP アドレス。
Socket
 InheritedAIR-only localPort : int
[読み取り専用] ローカルマシン上でこのソケットがバインドされているポート。
Socket
 InheritedobjectEncoding : uint
オブジェクトの書き込みまたは読み取り時に使用される AMF のバージョンを制御します。
Socket
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
 InheritedAIR-only remoteAddress : String
[読み取り専用] このソケットが接続されているリモートマシンの IP アドレス。
Socket
 InheritedAIR-only remotePort : int
[読み取り専用] このソケットが接続されているリモートマシンのポート。
Socket
  AIR-only serverCertificateStatus : String
[読み取り専用] サーバーの証明書のステータスです。
SecureSocket
 Inheritedtimeout : uint
接続までの待ち時間(ミリ秒数)を示します。
Socket
パブリックメソッド
 メソッド定義元
  
新しい SecureSocket オブジェクトを作成します。
SecureSocket
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
ソケットを閉じます。
Socket
  
AIR-only connect(host:String, port:int):void
[オーバーライド] ソケットを、SSL または TLS を使用する指定されたホストおよびポートに接続します。
SecureSocket
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
ソケットの出力バッファーに蓄積されたデータをフラッシュします。
Socket
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ソケットからブール値を読み取ります。
Socket
 Inherited
ソケットから符号付きバイトを読み取ります。
Socket
 Inherited
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
ソケットから、length パラメーターで指定したデータバイト数を読み取ります。
Socket
 Inherited
ソケットから IEEE 754 倍精度浮動小数点数を読み取ります。
Socket
 Inherited
ソケットから IEEE 754 単精度浮動小数点数を読み取ります。
Socket
 Inherited
ソケットから符号付き 32 ビット整数を読み取ります。
Socket
 Inherited
readMultiByte(length:uint, charSet:String):String
指定した文字セットを使用して、バイトストリームからマルチバイトストリングを読み取ります。
Socket
 Inherited
ソケットから AMF 直列化形式でエンコードされたオブジェクトを読み取ります。
Socket
 Inherited
ソケットから符号付き 16 ビット整数を読み取ります。
Socket
 Inherited
ソケットから符号なしバイトを読み取ります。
Socket
 Inherited
ソケットから符号なし 32 ビット整数を読み取ります。
Socket
 Inherited
ソケットから符号なし 16 ビット整数を読み取ります。
Socket
 Inherited
ソケットから UTF-8 ストリングを読み取ります。
Socket
 Inherited
ソケットから length パラメーターで指定した UTF-8 バイト数を読み取り、ストリングを返します。
Socket
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
 Inherited
ソケットにブール値を書き込みます。
Socket
 Inherited
ソケットに 1 バイトを書き込みます。
Socket
 Inherited
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
指定したバイト配列のバイトのシーケンスを書き込みます。
Socket
 Inherited
ソケットに IEEE 754 倍精度浮動小数点数を書き込みます。
Socket
 Inherited
ソケットに IEEE 754 単精度浮動小数点数を書き込みます。
Socket
 Inherited
ソケットに 32 ビット符号付き整数を書き込みます。
Socket
 Inherited
指定した文字セットを使用して、バイトストリームからマルチバイトストリングを書き込みます。
Socket
 Inherited
ソケットに AMF 直列化形式でオブジェクトを書き込みます。
Socket
 Inherited
ソケットに 16 ビット整数を書き込みます。
Socket
 Inherited
ソケットに 32 ビット符号なし整数を書き込みます。
Socket
 Inherited
指定された UTF-8 ストリングの長さ (バイト単位) を示す 16 ビット符号なし整数をソケットに書き込み、その後にストリング自体を書き込みます。
Socket
 Inherited
ソケットに UTF-8 ストリングを書き込みます。
Socket
イベント
 イベント 概要 定義元
 Inherited[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
  サーバーによりソケット接続が閉じられたときに送出されます。SecureSocket
  ネットワーク接続が確立されたときに送出されます。SecureSocket
 Inherited「ブロードキャストイベント」- Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  入出力エラーが発生して送信または受信操作が失敗したときに送出されます。SecureSocket
 InheritedSocket.connect() への呼び出しが、呼び出し元のセキュリティサンドボックスによって禁止されているサーバーまたは 1024 より下位のポートに接続しようとしたときに、そのような接続を許可するポリシーファイルが存在しない場合に送出されます。Socket
  ソケットがデータを受信したときに送出されます。SecureSocket
プロパティの詳細
AIR-only 

isSupported

プロパティ
isSupported:Boolean  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

現在のシステムでセキュアソケットがサポートされているかどうかを示します。

セキュアソケットは、すべてのプラットフォームでサポートされているわけではありません。新しい SecureSocket インスタンスを作成する前に、このプロパティをチェックします。



実装
    public static function get isSupported():Boolean
AIR-only 

serverCertificateStatus

プロパティ 
serverCertificateStatus:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

サーバーの証明書のステータスです。

ソケットがサーバーに接続しようと試みるまでは、ステータスは CertificateStatus.UNKNOWN です。検証後、ステータスは、CertificateStatus クラスによって列挙されたストリングのいずれかになります。接続は、証明書が有効で信頼されている場合にのみ、成功します。つまり、connect イベントの後は、ステータスは常に trusted です。

注意:いったん証明書が検証されるか拒否された後は、次に connect() メソッドを呼び出すまではステータス値は更新されません。close() を呼び出しても、ステータス値は "unknown" にリセットされません。



実装
    public function get serverCertificateStatus():String

関連項目

コンストラクター詳細
AIR-only 

SecureSocket

()コンストラクター
public function SecureSocket()

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

新しい SecureSocket オブジェクトを作成します。

SecureSocket インスタンスを作成する前に、SecureSocket.isSupported をチェックします。SSLv3 ソケットまたは TLSv1 ソケットがサポートされない場合、ランタイムは IllegalOperationError をスローします。


例外
IllegalOperationError — このエラーは、SSLv3 または TLSv1 がサポートされない場合に発生します。
メソッドの詳細

AIR-only connect

()メソッド
override public function connect(host:String, port:int):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

ソケットを、SSL または TLS を使用する指定されたホストおよびポートに接続します。

connect() メソッドを呼び出すときに、サーバー証明書が検証されます。SSL/TLS ハンドシェイクに成功し、証明書が有効で信頼できる場合、接続が確立され、ソケットにより connect イベントが送出されます。ハンドシェイクに失敗するか、証明書を検証できなかった場合は、IOError イベントが送出されます。これらのイベントのいずれかが送出された後、serverCertificateStatus プロパティを読み取ることによって証明書の検証結果を確認できます(connect イベントが送出される場合、証明書ステータスは常に trusted です)。

ソケットが既に接続済みの場合、最初に既存の接続が閉じられます。

パラメーター

host:String — 接続するホストのホスト名または IP アドレスです。
 
port:int — 接続先のポート番号です。


イベント
connect:Event — ネットワーク接続が確立されたときに送出されます。
 
ioError:IOErrorEvent — ホストが指定されていて、入出力エラーが発生して接続が失敗した場合に送出されます。これには、SSL/TLS ハンドシェイクエラーや、ホストのサーバー証明書の検証の失敗が含まれます。

例外
IOError — ホストが指定されていないので、接続に失敗しました。
 
SecurityError — このエラーは、0 未満または 65535 を超えるソケットポートを指定した場合に発生します。
イベントの詳細
AIR-only 

close

イベント
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.CLOSE

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

サーバーによりソケット接続が閉じられたときに送出されます。

close イベントは、サーバーにより接続が閉じられたときにのみ送出されます。SecureSocket.close() メソッドを呼び出しても送出されません。

Event.CLOSE 定数は、type プロパティ(close イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target接続が閉じられたオブジェクトです。
AIR-only 

connect

イベント  
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.CONNECT

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

ネットワーク接続が確立されたときに送出されます。

Event.CONNECT 定数は、type プロパティ(connect イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetネットワーク接続を確立した Socket オブジェクトまたは XMLSocket オブジェクトです。
AIR-only 

ioError

イベント  
イベントオブジェクトの型: flash.events.IOErrorEvent
プロパティ IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

入出力エラーが発生して送信または受信操作が失敗したときに送出されます。

サーバー証明書を検証できない場合、送出されるエラーイベントは IOError です。この場合は、serverCertificateStatus プロパティをチェックして、問題の原因を確認できます。

type プロパティ(ioError イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
errorID特定のエラーに関連付けられた参照番号です(AIR のみ)。
target入出力エラーが発生したネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。
AIR-only 

socketData

イベント  
イベントオブジェクトの型: flash.events.ProgressEvent
プロパティ ProgressEvent.type = flash.events.ProgressEvent.SOCKET_DATA

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

ソケットがデータを受信したときに送出されます。socketData タイプのイベントでは、ProgressEvent.bytesTotal プロパティは使用されません。

type プロパティ(socketData イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetEvent をアクティブに処理しているオブジェクトです。
bytesLoadedリスナーがイベントを処理しているときに読み込まれたアイテム数またはバイト数です。
bytesTotal0。このプロパティは、socketData イベントオブジェクトによって使用されません。
target進行状況をレポートするソケットです。
SecureSocketExample.as

次の例では、SecureSocket オブジェクトを作成および接続する方法を示します。
package
{
    import flash.display.Sprite;
    import flash.errors.IOError;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.net.SecureSocket;
    
    public class SecureSocketExample extends Sprite
    {
        private var secureSocket:SecureSocket = new SecureSocket();
        
        public function SecureSocketExample()
        {
            secureSocket.addEventListener( Event.CONNECT, onConnect )
            secureSocket.addEventListener( IOErrorEvent.IO_ERROR, onError );
            
            try
            {
                secureSocket.connect( "208.77.188.166", 443 );
            }
            catch ( error:Error )
            {
                trace ( error.toString() );
            }
        }
        
        private function onConnect( event:Event ):void
        {
            trace("Connected.");
        }
        
        private function onError( error:IOErrorEvent ):void
        {
            trace( error.text + ", " + secureSocket.serverCertificateStatus );
        }
    }
}