もともとHTTPはリアルタイムに適したプロトコルではなかった。そこで、HTTPにリアルタイム性を持たせるためのクリエイティブで多様な迂回方法が開発され、サーバ・クライアント間の双方向で途切れのない連続したコミュニケーションが実現した。
WebSocketは既存の仕様を利用、もしくは迂回して双方向コミュニケーションを実現するのではなく、双方向コミュニケーションを提供することを目的に新たに策定されたプロトコル。
WebSocketは、HTTPを取り去って永続的にTCPライクな通信を行うことによって、HTTPプロトコルによって発生するオーバーヘッドや機能制限を取り除いている。
クライアントから、WebSocketへのアップグレードを求めるGETリクエストをサーバに送信し、サーバがWebSocketに対応しているかどうかを判断する。ブラウザとサーバが両方ともWebSocketに対応している場合、HTTP接続は取り去られ「アップグレード」される。最近リリースされているブラウザはWebSocketをサポートしている。
WebSocketは新しいプロトコルだが、JavaScriptとNodeの組み合わせを使えば、WebSocketプロトコルを十分に実装できる。JavaScriptでは不足する場合は、C/C++を使ってこの曖昧かつ革命的なプロトコルロジックをモジュールとして実装できる。しかし、いずれの場合でも、自分でプロトコルを実装する必要はない。オープンソースコミュニティがすでにこれらを提供している。
サードパーティモジュールを使用して、NodeとWebSocketのパワフルなコンビネーションの可能性が探れる。
Nodeクックブック p.135
WebSocketは既存の仕様を利用、もしくは迂回して双方向コミュニケーションを実現するのではなく、双方向コミュニケーションを提供することを目的に新たに策定されたプロトコル。
WebSocketは、HTTPを取り去って永続的にTCPライクな通信を行うことによって、HTTPプロトコルによって発生するオーバーヘッドや機能制限を取り除いている。
クライアントから、WebSocketへのアップグレードを求めるGETリクエストをサーバに送信し、サーバがWebSocketに対応しているかどうかを判断する。ブラウザとサーバが両方ともWebSocketに対応している場合、HTTP接続は取り去られ「アップグレード」される。最近リリースされているブラウザはWebSocketをサポートしている。
WebSocketは新しいプロトコルだが、JavaScriptとNodeの組み合わせを使えば、WebSocketプロトコルを十分に実装できる。JavaScriptでは不足する場合は、C/C++を使ってこの曖昧かつ革命的なプロトコルロジックをモジュールとして実装できる。しかし、いずれの場合でも、自分でプロトコルを実装する必要はない。オープンソースコミュニティがすでにこれらを提供している。
サードパーティモジュールを使用して、NodeとWebSocketのパワフルなコンビネーションの可能性が探れる。
Nodeクックブック p.135