目次 |
---|
・Web Socketとは ・Web Socketの使い方 ・Web Socketサーバ |
Web Socketは、ソケットライクな通信をサポートする仕組みです。
一つのTCPコネクション上で、任意のタイミングの双方向通信を行うことが可能です。
またデータの送受信を少ないオーバーヘッドで行えるようにデザインされています。
サーバとネットワークリソースを低減し、リアルタイム性の高いサービスを低コストで実現することが出来るようになります。
簡単に言えば、Web上でTCPソケット通信を可能にしたものです。
通信以下の手続きで行われます。
Web Socketは、2011年8月現在以下のブラウザで対応しています。
Safari 5~、Google Chrome 10~
ここではクライアント(ブラウザ)側での使い方を示します。
Web Socketは、WEBブラウザ上のJavascript上で利用します。
Web Socketのスキーマは以下の通りです。
上記のドメインとは、接続するWebSocketのサーバのドメインです。
リソース名は、そのサーバ上のリソースです。
WebSocketクラスから、WebSocketオブジェクトを作ることでコネクションを確立します。
同時にサブプロトコルを指定します。
サブプロトコルとは、TCPでのポート番号に相当するものです。
httpだと80番、SSHだと22番などと同様に、WebSocketコネクション上で用いるプロトコルです。
ポート番号と違い、任意の文字列で指定することができます。
(記述のルールについては、まだ具体的には決まっていません。)
WebSocketサーバへメッセージを送信する場合は、「send」メソッドを使います。
受信する場合は、「message」イベントで受け取ります。
送受信データは、テキスト形式のみです。
そのため、オブジェクトや配列を送りたい場合は、JSON形式に変換して送受信します。
また、文字コードはユニコード(UTF-8)で送受信するように作られています。
shift_jis、EUC-JPの場合は変換が必要です。
コネクションの切断は、「close」メソッドを用い、切断されたことを「close」イベントで受け取ります。
コネクション切断要求は、サーバ側からも行えます。
その場合も「close」イベントが発生します。
Web Socketは、クライアント(ブラウザ)だけでは機能しません。
Web Socketサーバが必要です。
Web Socketサーバは、各言語でその実装ライブラリが準備されつつあります。
以下に、その一例を紹介します。
現状は、まだ実験的な実装がほとんどです。