国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

HTML5 Webソケット

WebSocket は、HTML5 が提供し始めた、単一の TCP 接続で全二重通信を行うためのプロトコルです。

WebSocket API では、ブラウザとサーバーはハンドシェイク アクションを?qū)g行するだけで、ブラウザとサーバーの間に高速チャネルが形成されます。データは両者間で直接送信できます。

ブラウザは、JavaScript を通じて WebSocket 接続を確立するリクエストをサーバーに送信します。接続が確立されると、クライアントとサーバーは TCP 接続を通じて直接データを交換できます。

Web Socket 接続を取得したら、send() メソッドを通じてサーバーにデータを送信し、 onmessage イベントを通じてサーバーから返されたデータを受信できます。

WebSocket オブジェクトの作成には次の API が使用されます。

var Socket = new WebSocket(url, [protocal] );

上記のコードの最初のパラメーター url は、接続の URL を指定します。 2 番目のパラメーターのプロトコルはオプションであり、受け入れ可能なサブプロトコルを指定します。


WebSocket のプロパティ

以下は、WebSocket オブジェクトのプロパティです。上記のコードを使用して Socket オブジェクトを作成するとします。

1 - 接続が確立され、通信が可能であることを示します。
Socket.readyState 読み取り専用屬性のreadyStateは、次の値の接続ステータスを示します: 0 - 接続がまだ確立されていないことを示します。


2 - 接続が閉じられていることを示します。


3 - 接続が閉じられたか、接続を開けないことを示します。



Socket.bufferedAmount

読み取り専用プロパティbufferedAmountは、send()によってキューに入れられ、送信を待っているがまだ送信されていないUTF-8テキストのバイト數(shù)です。

WebSocket イベント

以下は、WebSocket オブジェクトの関連イベントです。上記のコードを使用して Socket オブジェクトを作成するとします。

オープンSocket.onopen
接続メッセージの確立時にトリガーSocket.onmessageクライアントがサーバーデータを受信したときにトリガーエラーSocket.onerror通信エラーが発生したときにトリガー
Socket.onclose 接続が閉じられたときにトリガーされます

WebSocket メソッド

WebSocket オブジェクトの関連メソッドを以下に示します。上記のコードを使用して Socket オブジェクトを作成するとします。

ソケット。閉じる ()

    <mark id="wf9pc"><ul id="wf9pc"></ul></mark>
  • <u id="wf9pc"><tr id="wf9pc"></tr></u>
    <th id="wf9pc"><acronym id="wf9pc"></acronym></th>

    接続を閉じる

    WebSocket の例

    WebSocket プロトコルは、本質(zhì)的には TCP ベースのプロトコルです。

    WebSocket 接続を確立するには、クライアントのブラウザーが最初にサーバーへの HTTP リクエストを開始する必要があります。このリクエストは通常??の HTTP リクエストとは異なり、追加のヘッダー情報「アップグレード: WebSocket」が含まれています。これは、プロトコルのアップグレードを申請するための HTTP リクエストの場合、サーバーはこれらの追加のヘッダー情報を解析し、応答情報を生成してクライアントに返します。クライアントとサーバー間の WebSocket 接続が確立され、雙方が自由に接続できます。この接続チャネルを通じて情報を転送します。この接続は、クライアントまたはサーバーが接続をアクティブに閉じるまで存在し続けます。


    クライアント側(cè)の HTML と JavaScript

    現(xiàn)在、ほとんどのブラウザは WebSocket() インターフェイスをサポートしています: Chrome、Mozilla、Opera、Safari のブラウザで例を試すことができます。

    php_websocket.html ファイルの內(nèi)容

    <!DOCTYPE HTML>
    <html>
       <head>
       <meta charset="utf-8">
       <title>php中文網(wǎng)(php.cn)</title>
          <script type="text/javascript">
             function WebSocketTest()
             {
                if ("WebSocket" in window)
                {
                   alert("您的瀏覽器支持 WebSocket!");
                   
                   // 打開一個 web socket
                   var ws = new WebSocket("ws://localhost:9998/echo");
                   ws.onopen = function()
                   {
                      // Web Socket 已連接上,使用 send() 方法發(fā)送數(shù)據(jù)
                      ws.send("發(fā)送數(shù)據(jù)");
                      alert("數(shù)據(jù)發(fā)送中...");
                   };
                   ws.onmessage = function (evt) 
                   { 
                      var received_msg = evt.data;
                      alert("數(shù)據(jù)已接收...");
                   };
                   ws.onclose = function()
                   { 
                      // 關(guān)閉 websocket
                      alert("連接已關(guān)閉..."); 
                   };
                }
                
                else
                {
                   // 瀏覽器不支持 WebSocket
                   alert("您的瀏覽器不支持 WebSocket!");
                }
             }
          </script>
       </head>
       <body>
       
          <div id="sse">
             <a href="javascript:WebSocketTest()">運行 WebSocket</a>
          </div>
          
       </body>
    </html>

    pywebsocket のインストール

    上記の手順を?qū)g行する前に、WebSocket をサポートするサービスを作成する必要があります。 pywebsocket から mod_pywebsocket をダウンロードするか、git コマンドを使用してダウンロードします:

    git clone https://github.com/google/pywebsocket.git

    mod_pywebsocket には Python 環(huán)境のサポートが必要です

    mod_pywebsocket は Apache HTTP Web Socket Extension のインストール手順は次のとおりです:

    • ダウンロードしたファイルを解凍します。

    • pywebsocket ディレクトリに入ります。

    • コマンドを?qū)g行:

    $ python setup.py build
    $ sudo python setup.py install

    • ドキュメントを表示:

    $ py doc mod_pywebsocket


    サービスを開始します

    pywebsocket/mod_pywebsocket ディレクトリで次のコマンドを?qū)g行します:

    $ sudo pythonstandalone.py -p 9998 -w ../example/

    上記のコマンドは、ポート番號 9998 でサービスを開き、-w を使用してハンドラー echo_wsh.py が配置されているディレクトリを設(shè)定します。

    これで、先ほど作成した php_websocket.html ファイルを Chrome ブラウザで開くことができます。ブラウザが WebSocket() をサポートしている場合は、「WebSocket を?qū)g行」をクリックすると、プロセス全體の各ステップのポップアップ ウィンドウが表示されます。プロセス GIF のデモ:

    1.gif

    サービスを停止した後、「接続が閉じられました」というメッセージが表示されます。 ...」というポップアップが表示されます。



    學(xué)び続ける
    ||
    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> function WebSocketTest() { if ("WebSocket" in window) { alert("您的瀏覽器支持 WebSocket!"); // 打開一個 web socket var ws = new WebSocket("ws://localhost:9998/echo"); ws.onopen = function() { // Web Socket 已連接上,使用 send() 方法發(fā)送數(shù)據(jù) ws.send("發(fā)送數(shù)據(jù)"); alert("數(shù)據(jù)發(fā)送中..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("數(shù)據(jù)已接收..."); }; ws.onclose = function() { // 關(guān)閉 websocket alert("連接已關(guān)閉..."); }; } else { // 瀏覽器不支持 WebSocket alert("您的瀏覽器不支持 WebSocket!"); } } </script> </head> <body> <div id="sse"> <a href="javascript:WebSocketTest()">運行 WebSocket</a> </div> </body> </html>