Study_Socket


勉強する
Socket
connection API
Buffer
I/O
DNS操作原理~~

Socket


Webソケットとは?

  • HTML 5は、現在のインターネット環境で最も多く使用されています.
  • Webソケット対応ブラウザ(Explorer、Edgeなど)Webソケットプロトコル対応
  • |これは、2つのプログラム間でメッセージを交換するための通信方法の1つである.
  • Client(Web socket) <-----Message-----> Server(Web socket)

    Webスロットの機能

  • 양방향 통신(Full-Duplex)
  • データ送受信を同時に処理できる通信方法である.
  • クライアントとサーバは、必要に応じてデータを交換できます.
  • |通常のHTTP通信は、クライアントが要求を送信した場合にのみサーバが応答する一方向通信である.
  • 실시간 네트워킹(Real Time-Networking)
  • Web環境での連続データ(チャット、株式、ビデオなど)の高速露出
  • 複数の単発機間でデータを迅速に交換することができる.
  • Webソケット以前のテクノロジーと同様


    Polling


  • 定期的にサーバにリクエストを送信します.
  • Real-time通信では、いつ通信が発生するか予測できないため、不要な要求と接続が発生します.
    (履歴は変更されていませんが、要求を続行する必要があります)
  • Real-time通信のリアルタイム性が悪い
  • Long Polling


  • サーバに要求を送信し、応答が受信されるまで接続を維持します.
  • 応答を受信すると、接続が切断され、再要求されます.
  • 大量のメールを受信した場合、最終的にはPolingと同じになります.
  • Streaming


  • サーバに要求を送信し、接続を中断することなくデータを受信し続ける.
  • クライアントからサーバへのデータ送信が困難です.
  • その結果,これらの方法はすべてHTTPで通信するため,要求,応答ともにHeaderを必要としない.
    (データの迅速な交換が必要ですが、これはヘッドが大きすぎることを意味します)

    Webソケット動作-データ転送


    しゅけい


    #クライアント---要求-->サーバ

    #クライアント<---レスポンス---サーバ

    しゅけいしあげ
  • プロトコルはwsに変更されます.
  • wss(443):データセキュリティを保護するためにSSLを適用するプロトコル
  • Message:データの送受信に使用される単位は、複数のframeからなる論理メッセージユニットである.
  • frame:通信中最小のデータを小見出し+負荷(3層パケット単位)
  • Webソケット通信で使用されるデータはUTF 8符号化のみでサポートされる.
    (ex.0 x 00(送信するデータ)Oxff
  • データの双方向転送が完了したら、Closeフレームを交換して接続を終了します.

    Webソケットプロトコルの特徴

  • httpプロトコルで最初の接続でのみ握手を行うため、httpヘッダを使用します.
  • Webソケットは、個別のポートではなく、既存のポート(http(80)およびhttp(442))を使用します.
  • frameMessage|は論理単位で送信および受信される.
  • Messageで交換可能なMessageはテキストとバイナリファイルのみです.
  • Webソケットの制限

  • HTML 5以前の技術で実現されたサービスは、Webソケットをどのように処理すべきか
  • Socket.io / SockJS

  • HTML 5以前の技術で実現されたサービスは、Webソケットのように使用できる技術
    (これは、リアルタイム通信を支援することを意味する)
  • JSブラウザタイプ
  • を考慮せずにリアルタイムWebを実現
  • Websocket、FlashSocket、AJAX Long Poling、AJAXマルチセクションStreaming、Iframe、JSONP Poling抽象は1つのAPI
  • つまり、ブラウザとWebサーバのタイプとバージョンを特定し、最適なテクノロジーとコールバック機能を選択して、Webソケットのように見えます.
  • STOMP

  • Websocketは文字列の交換のみを許可し、これ以上はしません.
  • 送信および受信した文字列を完全に復号します.
  • HTTPはフォーマットが確定しているので、全員が約束を守っていれば説明できる.
  • ただし、Websocketは固定形式であるため、アプリケーションで簡単に説明することは難しい.
  • したがって、Websocket方式は、通常、sub−protocolsを使用してメッセージのフォーマットを規定する.
    (相互解釈が容易)
  • sub-protocols : STOMP(Simple Text Oriented Message Protoco)
  • STOMPは、チャット通信のためのフォーマットを定義する.
  • HTTPは簡単に定義され、説明しやすいプロトコルである.
  • 通常はWebソケットで使用されます.
  • フレームワーク
  • COMMAND
    header1:value1
    header2:value2
    
    BodyBodyBodyBody^@
  • フレームのプロトコルに基づいて、フレームはコマンド(Command)、ヘッダ(Header)、およびボディ(Body)から構成される.
  • 常用命令はCONNET、SEND、SUBSCRIBE、DISCONNECTなどである.
  • 見出しと本体を空白行に分割し、本体の端点をNULL文字に設定します.
  • ソフトウェアプログラミング



    Socketを使用したクライアントとサーバの通信プログラム構造










    ref
    https://www.youtube.com/watch?v=dX82Wuc18wk
    https://www.youtube.com/watch?v=MPQHvwPxDUw