こんにちは、YS.Mです。
本日は「WebSocket API」について調べました。
WebSocket APIとは、
コンピュータネットワークの通信規格の一つです。
基本的に、Webサーバーとクライアントとの通信をするとき
クライアントからリクエストで「こういうデータをください」と要求があり
それに対してサーバーが「はいどうぞ」という風に1回1回の通信をするたびに、
リクエストと応答を繰り返すのですが
それではリアルタイムな双方向の通信が実現できないため、
リアルタイムに通信する方法として
AjaxやCometという仕組みでリアルタイムに通信しているように見せていました。
でも、Ajaxは、基本的にブラウザからのリクエストで動作する仕組みでサーバー側からデータをプッシュできないし、
Cometは、ブラウザからのリクエストで動作する仕組みではなく、サーバ側からクライアント側にレスポンスを返すための仕組みですが、
Ajaxに比べてリソース消費が大きいというデメリットがあるようです。
そこでHTML5の新機能としてWebSocketという仕組みが登場し、AjaxやCometのデメリット部分を補いつつ、クライアントとサーバー間の双方向のリアルタイム通信が実現しています。
簡単な説明ですが、通信をつなぎっぱなしにしておくことができるようです。。
いままでは、1回1回接続を確立しては、データの送受信が終わると、接続を切っていたが。
WebSocketでは、一度接続を確立してしまえば、明示的に切断をするまで接続された状態となるため、
双方間でのデータのやり取りがリアルタイムに実現できるようになるようです。
リアルタイムなアクセス解析や、チャットなどのリアルタイム通信などで利用されています。
イメージ的には電話のような感じでしょうか?
普段何気なくチャットなど利用していますが、意外と最近の技術なんですね!
WebSocketを実装するための手順もこちらで解説されていますね。