[ネットワーク]WebSocket,Socket.IO


WebSocket


インタラクティブなWebページを作成するには、ブラウザとWebサーバの間でより自由な双方向のメッセージ送受信が必要です.
->WebScoket API HTML 5標準技術採用
スロットを使用すると、サーバとクライアント間の双方向のフリーデータ交換が可能になります.
WebソケットはHTTP層で動作するソケットである
WebSocketプロトコルを表すws://URIスキーム(Scheme)の使用
暗号化ソケットはwss://https://などを使用します.

リクエスト


Upgradeタイトルを使用してWebサーバにWebソケットを要求
ブラウザは、ヘッダなどのランダムに生成された鍵をサーバに送信します.
Webサーバは鍵に基づいてトークンを作成し、ブラウザに応答します.
->WebSocketハンド
  • Client request
  • GET /chat HTTP/1.1
    Host: server.example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== 
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13
    Origin: http://example.com
  • Server response
  • HTTP/1.1 101 Switching Protocols
    Upgrade: websocket Connection: Upgrade 
    Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= 
    Sec-WebSocket-Protocol: chat
    HTML 5 Web Socketは有用な技術ですが、異なるWeb Socketバージョンでは異なるブラウザがサポートされており、古いブラウザではサポートされていないため、JavaScriptを使用してブラウザを使用することなくリアルタイムのWebを実現できます.IOをもっと使う

    Socket.IO

  • テクノロジー
  • は、ブラウザタイプを考慮せずにJavaScriptを使用してリアルタイムWebを実現
  • node.jsベースのリアルタイムWebアプリケーションサポートライブラリ
  • は、ほとんどのWebブラウザおよびモバイルデバイスをサポートする
  • 100%JavaScriptを使用して
  • を実現
  • Web Socket、FlashSocket、AJAX Long Poling AJAXマルチセクションStreaming、Iframeなどの既存のほとんどのリアルタイムWeb技術の抽象化.
  • の開発者はSocketです.
  • は、IOを使用して開発され、クライアントにPushメッセージを送信するブラウザ・モードですが、WebSocketはサポートされておらず、バージョンによって内部Pushメッセージの送信方法が異なります.
  • Socket.IOによるサーバ、クライアントプログラミング
  • が可能