AJAXによるチャット

@ITの記事、AJaxうきうきWatch 第3回 どんなに無茶をやっても「それもありかな」なAjaxを読んだ。

ここで出てくるAjaxの例に面白いものを見つけた。

ハイライト3・すぐに反応が返ってくるチャット
ConnectiveChat

おもしれぇ。
以前、俺も、AjaxChatと題して、JavaScriptでChatプログラムを書いた

一定時間ごとにクライアント側がサーバに問い合わせるポーリングというテクニックが定番として使われることになります。

はい、おっしゃるとおりです。先のAjaxChatでも、Timerでポーリングしています。だって、サーバからPushなんてできないもん。

このConnectiveChatは、この問題を創意と工夫で解決しました。

プログラムなんてのは、創意工夫の連続ですよ。

クライアント側が先に通信を開始させておき、それに対する応答を別のクライアントからのメッセージを受信するまで遅延させるという方法で実現されています。

すげぇ~。確かにできるわぁ。
クライアントからのリクエストをサーバ側で受け取ったら、タイムアウトするか、他のクライアントからの更新があるまで保留。タイムアウトするか、他のクライアントからの更新があったら、リクエストを返す。ただそれだけ。すんげぇシンプルだけど、完璧。

こうすることで、無駄なトラフィックを発生させないようにするらしい。
もちろん、サーバー側の平均サービス時間は長くなり、特に接続リソースは増える。

DATA.blogAJAXによるチャットという記事では、DoSに関する考察が見られる。まぁ確かにそうだけど、回避手段はいくらでもできそうだね。

世の中には面白いことを思いつく人がいっぱいいるねぇ。これを使ってなんか遊べないかな。

AJaxうきうきWatch 第3回 どんなに無茶をやっても「それもありかな」なAjaxでは、これ以外にも、

Google Maps APIを背景にしたゲーム
* Google Maps APIシューティング挫折版
Mozilla専用、3DなGoogle Maps
* Google Mapsが3Dになりました

が出ている。おもしれぇ。どちらも、おもしれぇ。。。
こうゆうのを見ると、おいらもなんか作らなきゃって思うよねぇ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください