yagisukeのWebなブログスマートフォン用の表示で見るyagisukeのWebなブログWebなブログお山なブログこの広告は、90日以上更新していないブログに表示しています。WebSocketWebSocketとは、サーバー/クライアント間で、オーバーヘッドの小さい双方向通信を実現する仕組みです。WebSocketはフレーム探知で送受信しますが、相手が決まっているために送信先の情報などはもちません。HTTPの基本要素のうち、ボディのみを送っているようなものです。フレームはデータサイズなどを持っているだけで、オーバーヘッドも2から14バイトしかありません。一度コネクションを確立した後は、サーバーとクライアントのどちらからも通信を行うことが可能です。WebSocketの通信の比較を電話で表現してみたの図です。負荷が小さいサーバー側の情報取得はリアルタイムクライアント側の情報送信も同じ接続内(双方向通信)WebSocketはステートフルWebSocketが他のHTTPベースのプロトコル異なるのは「ステートフルな通信である」という点です。基本的にリクエスト単位で接続が切れてもセマンティクス上は問題ありません。応答していても問題ありません。リクエストを捌くサーバーが入れ替わっても問題がないように設計されています。JavaScriptのクライアントAPIWebSocketは、HTTPの下のレイヤーであるTCPソケットに近い機能を提供するAPIです。JavaScriptのAPIもTCPソケットのAPIに近い形態になっています。通信はサーバーが受信を受けている状態で、必ずクライアントから接続します。システムプログラミングの文脈でソケットについて説明するときに使われる関数名です。JavaScriptのWebSocketのAPI名はこれと異なりますが、基本的な考え方に差はありません。外部から見たシーケンスは同じです。基本的な接続と送信のコードを示します。WebSocketクラスのコンストラクタで接続先のURLを指定して、send()メソッドでデータを送信します。上記の手順でクライアントが接続に当たってすべきことは2つだけです。このコンストラクタと、onopenイベントリスナの裏でこれだけのことが行われています。})}接続後のソケットに対して、クライアント側で行う操作は次の3つです。ArrayBufferなどを使うことができます。受信には、onmessageメソッドを使います。Eventsと同じです。WebSocketにアップグレードすることを要請します。クライアントとのコネクションの確立を立証する為に使われる。WebSocketは単にソケット通信の機能だけを提供する。その中でどのような形式を使うかはアプリケーションで決める必要がある。コンテントネゴシエーションのように複数のプロトコルが選択できるように使われる。Sec-WebSocket-Keyを決まったルールで変換した文字列。これにより、クライアントはサーバーとの通信確立を検証できる。クライアントからサブプロトコルのリストを受け取ったときに、その中野一つを選択して返す。それをBASE64エンコードした内容になります。この後は双方向通信を開始します。ライブラリを経由して使う方法に人気がありました。WebSocketといえばSocket.IOでした。現在ではWebSocketが使えないブラウザは殆どありません。ありますが、後方互換性目的で他のライブラリを使う理由はかなり減ってきています。使うにしてもXMLHttpRequestフォールバックをオフにされることが増えるでしょう。引用元や参考情報https://triple-underscore.github.io/WebSocket-ja.htmlhttps://developer.mozilla.org/ja/docs/Web/API/WebSockethttps://www.slideshare.net/You_Kinjoh/websocket-10621887http://south37.hatenablog.com/entry/2014/09/07/WebSocketについて調べてみた。