Adobe Flex 3の公式ドキュメントからのドキュメントの翻訳を希望するすべての人に提供したい-ソケット接続(ソケット接続)
2番目の部分はここのFlex3です。 ソケット接続パート2
ソケット接続
Action Script 3.0で使用できるソケット接続には、XMLソケット接続(XMLソケット)とバイナリ(バイナリ)ソケット接続の2種類があります。 XMLソケットを使用すると、リモートサーバーに接続し、明示的に閉じるまで開いたままの接続を作成できます(つまり、サーバーへの永続的な接続をシミュレートします) 。 これにより、常に新しい接続を開くことなく、サーバーとクライアント間でXMLデータを転送できます。 XMLソケットに基づくサーバーを使用するもう1つの利点は、ユーザーがサーバーからデータを受信するために常にリクエストを送信する必要がないことです。 サーバーからデータを転送するために、クライアントからの要求を待つ必要はなく、サーバーに接続されている各クライアントにすぐにデータを送信できます。
バイナリソケットはXMLソケットに多少似ており、クライアントとサーバー間でデータを交換するために特別なXMLパケットを使用しないという点でのみ異なります。 代わりに、データはバイナリ(バイナリ)形式で送信されます。
クラスソケット
ActionScript 3.0で導入されたSocketクラスを使用すると、生のバイナリデータを読み書きするためのソケット接続を作成できます。
これはXMLSocketクラスに似ていますが、受信データと送信データの形式を指定することはできません。 クラスソケット
バイナリ(バイナリ)プロトコルを使用するサーバーと対話するときに便利です。 バイナリソケット接続を使用すると、POP3、SMTP、IMAP、NNTPなどのさまざまなインターネットプロトコルで通信できるコードを作成できます。 また、これにより、Flash Playerがメールサーバーとニュースサーバーに接続できるようになります。
Socketクラスは、IDataInputおよびIDataOutputインターフェイス(flash.utilsパッケージにあります)で説明されているすべてのメソッドを継承し、これらのメソッドはソケットの読み書きに使用されます。
XMLSocketクラス
ActionScriptには、サーバーへの継続的な接続を作成できるXMLSocketクラスが組み込まれています。 このタイプの接続は、サーバーの継続的なポーリングによる遅延をなくし、主にチャットやマルチプレイヤーゲームなどのリアルタイムアプリケーションで使用されます。
HTTP指向のチャットの従来の実装は、一定の頻度でサーバーを継続的にポーリングし、HTTP要求を使用して新しいメッセージをダウンロードすることに基づいています。 従来のソリューションとは異なり、XMLソケットベースのチャットは常時オープン接続をサポートし、サーバーがクライアントからのリクエストを待たずにすぐに着信メッセージを送信できるようにします。
ソケット接続を作成するには、接続要求を待機し、アプリケーション(ファイル)にSWF応答を返すサーバーアプリケーション(つまり、サーバー)を作成する必要があります。 このタイプのサーバーアプリケーションは、Java、Python、Perlなどのプログラミング言語を使用して作成できます。 サーバー側(サーバーコンピューター)でXMLSocketクラスを使用するには、XMLSocketを使用するプロトコルを理解するデーモン( バックグラウンドで実行されるプログラム )を実行する必要があります。
プロトコルの要件:
- XMLメッセージは、TCP / IPソケット接続ストリームの全二重で送信されます。
- 各XMLメッセージは完全なXMLドキュメントであり、ゼロバイトで終わる必要があります。
- 1つのソケット接続内で、XMLは無制限の数のXMLメッセージを送受信できます。
注:リアルタイムメッセージングプロトコル(RTMP)とは異なり、XMLソケットはHTTPトンネリングをサポートしないため、XMLSocketクラスはファイアウォールを自動的にトンネリングできません。 HTTPトンネリングが必要な場合は、XMLSocketの代わりにFlash RemotingおよびFlash Media Server(RTMPをサポート)を使用できます。
サーバーに接続するときにXMLSocketを使用する場合に考えられる制限:
- XMLSocket.connect()は、1024以上のTCPポートにのみ接続できます。この制限の結果の1つは、サーバーで実行され、XMLSocketオブジェクトと対話するデーモンも1024以上のポート番号を持たなければならないことです。システムは1024未満の番号を使用します; FTP(21)、Telnet(23)、SMTP(25)、HTTP(80)、POP3(110)などのサービスでは、XMLSocketはセキュリティ上の理由からこれらのポート番号を使用できません。 ポート番号を制限すると、これらのリソースへの不正アクセスの可能性が減少します。