Webソケット 概要
Webソケットについて、勉強して概要を図で自分なりにまとめてみました。
Webソケットとは、一般的にサーバー側とクライアント側を常時接続状態にしておいて双方向通信ができるようにする技術であり、チャットアプリや複数人が同時に遊べるゲームなど、リアルタイムに通信が行えることができます。
でもチャットシステムならWebソケットを使うといいと聞くけど、どうして何だろう?
それについての説明が次のスライドになります。
例えば、チャットを作ろうとなった場合、上の図で言うと左側のユーザーがチャットしたら、リアルタイムで繋がっている各ユーザーにその内容を反映させなければなりません。
もし、チャットシステムをWebソケットを使用しなかった場合、左側のユーザーとサーバー間のデータのやり取りは、従来の技術でいうAjaxを使用すれは実現できます。
一方で、その他のユーザーにチャットの内容を反映したい場合は、cometという仕組みを用いれば、実現できます。
以上のことから、従来の技術であるAjaxとCometを使用すれば、チャットサービスを作れなくはないのですが、、、通信の度にHTTPヘッダーが付与されるので、わずかであるが一定時間内にネットワーク常に転送されるデータ量が増えてしまい、結果通信速度が遅くなってしまいます。
そのため、リアルタイム性が求められるチャットシステムの場合、その問題がネックになります。
Webソケットを使用すると、その問題が解消でき、上記スライドで書いてあることが実現できます。
だから、チャットシステムでWebソケットが使われのかと考えています。