2013年4月18日木曜日

Cometのまとめ

http://codezine.jp/article/detail/733

探した限り、一番わかり易い説明が上記。
Cometとは一言で言うとサーバー側からリアルタイムにレスポンスを受け取るための技術
で、普通はそんなことできないじゃん、だってこっちがリクエストを投げない限りサーバーは
レスポンスを返さないでしょ?という疑問に対し丁寧に説明をしている。

チャットツールを例に取り、リアルタイムでレスポンスを受け取る方法をいくつか解説している。

1:F5連打法。F5連打すればサーバーに新たなメッセージが届いた時すぐサーバーのデータを
取得できるね、でもF5連打するの大変じゃね?

2.ブラウザが定期的にリロードする方法。自動化されてるけど、間隔が短すぎるとリロードの
たびに何もできない時間が生じてうざいよね?

3.Ajaxを使った方法。ページ全読み込みじゃないから2の方法よりはましだね。でも更新間隔
を長くすると新着メッセージの反映が遅れるね。

4.Cometを使った方法。じゃあこっちがリクエストを投げた時に新着メッセージが届くまで
なんもレスポンスを返さずに待ち状態にしといて、メッセージが届いた瞬間にレスを返せば
よくね?というこっちが投げたボールをサーバーがずっと持っとくという画期的アイデアに
よって、リアルタイムレスポンスを実現したとさ。めでたしめでたし。

という感じ。