ホームページ ウェブフロントエンド H5 チュートリアル HTML5 の WebSocket について説明します

HTML5 の WebSocket について説明します

May 26, 2017 pm 03:34 PM
html5 websocket

HTML5 の WebSocket について知る

HTML5 仕様の中で、私のお気に入りの Web テクノロジーは WebSocket API です。これは急速に普及しつつあります。 WebSocket は、私たちが過去数年間使用してきた Ajax テクノロジーに代わる歓迎すべき代替手段を提供します。この新しい API は、単純な構文を使用してクライアントからサーバーにメッセージを効率的にプッシュする方法を提供します。 HTML5 の WebSocket API を見てみましょう。これはクライアント側でもサーバー側でも使用できます。そして、Socket.IO と呼ばれる優れたサードパーティ API があります。

1. HTML5 の WebSocket API とは何ですか?

WebSocket API は、次世代のクライアント/サーバー非同期通信方式です。この通信は、ws または wss プロトコルを使用して単一の TCP ソケットを置き換えるものであり、任意のクライアントおよびサーバー プログラムで使用できます。 WebSocket は現在、W3C によって標準化されています。 WebSocket は、Firefox 4、Chrome 4、Opera 10.70、Safari 5 などのブラウザーですでにサポートされています。

WebSocket API の優れた点は、サーバーとクライアントが指定された時間範囲内でいつでも情報を相互にプッシュできることです。 Ajax テクノロジーではクライアントがリクエストを開始する必要があり、WebSocket サーバーとクライアントは相互に情報をプッシュできるため、WebSocket は Ajax (または XHR) 通信に限定されません。

Ajax テクノロジの賢い点は、その使用方法が設計されていないことです。 WebSocket は指定されたターゲットに対して作成され、両方向にメッセージをプッシュするために使用されます。

2. HTML5 での WebSocket API の使用法

各サーバー側言語には独自の API があるため、クライアント側 API のみに注目してください。以下のコード スニペットは、接続を開き、接続のイベント リスナーを作成し、接続を切断し、メッセージを送信し、メッセージをサーバーに送り返し、接続を閉じます。

コードは次のとおりです。

// 创建一个Socket实例
var socket = new WebSocket('ws://localhost:8080');
// 打开Socket 
socket.onopen = function(event){
  // 发送一个初始化消息
  socket.send('I am the client and I\'m listening!');
  // 监听消息
  socket.onmessage = function(event){
    console.log('Client received a message',event);
  };
  // 监听Socket的关闭
  socket.onclose = function(event){
    console.log('Client notified socket has closed',event);
  };
  // 关闭Socket.... 
  //socket.close()
};
ログイン後にコピー

上記の初期化スニペットを見てみましょう。パラメータは URL で、ws は WebSocket プロトコルを表します。 onopen、onclose、および onmessage メソッドは、イベントを Socket インスタンスに接続します。各メソッドは、ソケットの状態を表すイベントを提供します。

onmessage イベントは、メッセージの本文部分を含めることができるデータ属性を提供します。メッセージの本文部分は、より多くのデータを転送するためにシリアル化/逆シリアル化できる文字列である必要があります。

WebSocket の構文は非常にシンプルで、クライアントが WebSocket をサポートしていない限り、WebSocket の使用は非常に簡単です。 IE ブラウザは現在、WebSocket 通信をサポートしていません。クライアントが WebSocket 通信をサポートしていない場合は、いくつかのフォールバック オプションを使用できます。

Flash テクノロジー - Flash は簡単な代替手段を提供します。 Flash を使用することの最も明白な欠点は、すべてのクライアントに Flash がインストールされているわけではなく、iPhone/iPad などの一部のクライアントは Flash をサポートしていないことです。

AJAX ロングポーリング テクノロジー - AJAX ロングポーリングを使用して WebSocket をシミュレートすることは、しばらく前から業界で行われてきました。これは実行可能な手法ですが、送信されるメッセージは最適化されません。つまり、これは解決策ではありますが、技術的に最適な解決策ではありません。

IEなどの現在のブラウザはWebSocketに対応していないため、WebSocketのイベント処理やリターン送信、サーバー側で統一APIを利用する必要がある場合はどうすればよいでしょうか?幸いなことに、Guillermo Rauch は Socket.IO テクノロジーを作成しました。

3. Socket.IO を使用した WebSocket

Socket.IO は、LearnBoost の最高技術責任者および LearnBoost Labs のチーフサイエンティストである Guillermo Rauch によって作成された WebSocket API です。 Socket.IO は検出機能を使用して、WebSocket 接続、AJAX ロングポーリング接続、または Flash などを確立するかどうかを決定します。リアルタイム アプリケーションを迅速に作成できます。 Socket.IO は、クライアント API によく似た NodeJS API も提供します。

[関連する推奨事項]

1. 無料の h5 オンライン ビデオ チュートリアル

2. HTML5 完全版マニュアル

3. php.cn オリジナル html5 ビデオチュートリアル

4. h5Canvas で五つ星赤旗を描画する方法の例

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLの表の境界線 HTMLの表の境界線 Sep 04, 2024 pm 04:49 PM

HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

HTML のネストされたテーブル HTML のネストされたテーブル Sep 04, 2024 pm 04:49 PM

これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

HTML 左マージン HTML 左マージン Sep 04, 2024 pm 04:48 PM

HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

HTML 内のテキストの移動 HTML 内のテキストの移動 Sep 04, 2024 pm 04:45 PM

HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

HTML 順序付きリスト HTML 順序付きリスト Sep 04, 2024 pm 04:43 PM

HTML 順序付きリストのガイド。ここでは、HTML 順序付きリストと型の導入とその例についても説明します。

HTML の onclick ボタン HTML の onclick ボタン Sep 04, 2024 pm 04:49 PM

HTML オンクリック ボタンのガイド。ここでは、それらの紹介、動作、例、およびさまざまなイベントでの onclick イベントについてそれぞれ説明します。

HTML入力プレースホルダー HTML入力プレースホルダー Sep 04, 2024 pm 04:54 PM

HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

See all articles