Home
概要
チュートリアル

リンク
Home > 概要 > 通信の種類と特徴

通信の種類と特徴

Flashの通信機能には双方向通信を行うものと、行わないものがあることを紹介しました。この二つはどのように違うのでしょうか?

インターネットの通信とは電話のようなもの

さてFlashでの通信を考える前にインターネットでの通信を考えます。
通信は、以下のステップを踏んで行われます。
・情報を求める側(クライアント)が情報を持っている側(サーバー)に接続する
・接続が成功したら求める情報をクライアントからサーバーに伝える
・それに対してサーバーがクライアントに答えを伝える
・クライアントが必要な情報を得たら接続を終了する

これはちょうど電話と一緒で、必要な情報を得たいと思ったら電話をかけ、会話をして情報を得たら電話を切る、という流れと似ています。


フラッシュプレイヤーは”かけるだけ”の電話

Flashでの通信には、セキュリティ確保のため、いくつかの制限が設けられています。
・フラッシュファイルの置いてあるサーバーにしか(正確には同じドメインのサーバーにしか)接続できません。これは他のサーバーに対して悪意を持った攻撃を行えないようにするための制限です。
・フラッシュそのものがサーバーになることはできません。フラッシュをダウンロードした人に対して攻撃が加えられることを防いでいます。

フラッシュプレイヤーを電話に例えると、「きまった番号に、かけることだけができる電話」といえます。


HTTPは事務的な電話

Flash remortingやloadVariables等はプロトコルにHTTPを利用しています。
HTTPによる通信は以下のステップを踏んで行われます。
・クライアントからサーバーに接続する
・クライアント側から要求を送信する
・サーバー側が答えを送信する
・接続を終了する
という通信方法です。

クライアント側がはじめに1回だけ要求を送って、サーバー側もすべての情報を1回で送ります。したがってクライアントがさらに情報を得たいときには、もう一度接続しなおさなければなりません。(実際にはもう少し効率よくやり取りする方法があります。しかし、これはFlashから制御できませんのでここでは扱いません)

あっさりとした業務連絡の電話のような通信法といえます。

ソケット通信はゆったり長電話

FlashCommunicationServerやXMLSocketは、双方向にリアルタイムで通信を行うことのできる、ソケット通信を利用しています。
ソケット通信は以下のステップを踏んで行われます。
・クライアントからサーバーに接続する
・クライアントおよびサーバーから任意のタイミングで情報を送信する
・クライアントもしくはサーバーが接続を終了する

クライアントとサーバー双方からいつでも何度でも情報を送ることができます。また必要に応じて接続を継続することができます。

事務的に1回しかしゃべれないHTTPと比べれば、お互いの言いたいことを言える、ゆったりとした長電話といえるでしょう。


どちらを使えばいいのか

HTTP通信とソケット通信がありましたがどちらを使いましょう?
それぞれの通信方法には、長所・短所があります。

HTTP通信の場合、欲しい情報が得られるまで何度も接続しなおさなければなりません。それに対してソケット通信では、一回の通信で必要な情報が得られるまで待っていることができます。また接続が継続している限りサーバー側から情報を送信することもできます。

しかし、実際にFlashを使ったWebページを公開する場合を考えると、レンタルサーバーではソケット通信で使われるサーバーはまだまだ一般的ではないため、使用できない場合が多いです。それに対してCGIやPHPは使えることが多いので、それらを利用するHTTP通信でマルチユーザーコンテンツは構築可能です。

現状ではソケット通信を行うためには、多くの場合サーバー丸ごと一台のレンタルやホスティング、あるいは自宅・事務所内でサーバーを立てたりしなければなりません。



注:厳密に言うとHTTPもソケット通信ではありますが、やり取り回数に制限があるということで分けさせていただきました。

前へ|次へ

現在このサイトを 人の方がみています