ホームページ >ウェブフロントエンド >jsチュートリアル >WebSocket はどのように機能するのでしょうか?

WebSocket はどのように機能するのでしょうか?

WBOY
WBOYオリジナル
2024-02-18 16:48:07725ブラウズ

WebSocket はどのように機能するのでしょうか?

タイトル: WebSocket の原理分析とコード例

本文:
インターネットの発展とアプリケーション シナリオの継続的な拡大に伴い、従来の HTTP プロトコル ベースの要求 - 応答モードは、徐々に高いリアルタイム パフォーマンスの要求を満たすことができなくなります。これに関連して、クライアントとサーバーの間に双方向の通信チャネルを確立してリアルタイムのデータ送信を実現できる HTML5 のプロトコルである WebSocket が登場しました。

WebSocket の原理:
WebSocket はまったく新しいプロトコルを採用しており、HTTP と比較して「長い接続」方式、つまり接続が確立された後、クライアントとサーバーの間の接続が長くなります。頻繁に HTTP リクエストと応答を行わなくても、通信チャネルは常に開いたままになるため、ネットワークの負荷が軽減され、リアルタイムのパフォーマンスと効率が向上します。

WebSocket プロトコルは、HTTP プロトコルを使用して接続を確立しますが、接続が正常に確立された後、両者は HTTP リクエストに頼らずに直接データを送信します。 TCP/IP プロトコルに基づいており、非同期通信をサポートしており、クライアントとサーバーの間で双方向にデータを転送でき、サーバーはクライアントにデータをアクティブにプッシュできます。

WebSocket の通信プロセスは大まかに次のとおりです。

  1. クライアントは HTTP リクエストをサーバーに送信し、接続を WebSocket プロトコルにアップグレードするように要求します。
  2. リクエストを受信した後、サーバーは HTTP 101 応答コードで応答し、WebSocket プロトコルへのアップグレードが成功したことを示します。
  3. 接続のアップグレードが成功すると、クライアントとサーバーは全二重通信チャネルを確立します。
  4. クライアントとサーバーは、このチャネルを通じて自由にデータを転送できます。サーバーがクライアントにデータをプッシュするか、クライアントがサーバーにデータを送信するかは、リアルタイムで行うことができます。

通信のセキュリティを確保するために、WebSocket は暗号化アルゴリズム (TLS など) を使用してデータ送信を暗号化できることに注意してください。

WebSocket コードの例:
次に、簡単な WebSocket コードの例 (JavaScript を使用):

// 创建WebSocket对象
var socket = new WebSocket("ws://example.com/socket");

// 连接成功时触发
socket.onopen = function() {
   console.log("WebSocket连接成功");

   // 向服务器发送数据
   socket.send("Hello, Server!");
};

// 接收到服务器返回的数据时触发
socket.onmessage = function(event) {
   console.log("接收到数据:" + event.data);

   // 向服务器发送数据
   socket.send("Hello, Server!");
};

// 连接关闭时触发
socket.onclose = function(event) {
   console.log("WebSocket连接关闭", event.code, event.reason);
};

// 发生错误时触发
socket.onerror = function(error) {
   console.log("WebSocket错误:" + error);
};

上記のコード例では、WebSocket コンストラクターを呼び出すことによって WebSocket オブジェクトが作成されます。そしてサーバーの URL を渡します。次に、関連するイベントをバインドすることで、接続ステータスとデータ受信を監視します。

概要:
WebSocket は、TCP/IP プロトコルに基づく全二重通信プロトコルであり、長い接続を確立することでクライアントとサーバー間のリアルタイムのデータ送信を実現します。従来の HTTP プロトコルと比較して、WebSocket には、リアルタイム パフォーマンスが高く、効率が高く、リソース消費が削減されるという利点があります。 WebSocket プロトコルを使用すると、リアルタイム チャット、リアルタイム株価更新など、さまざまなリアルタイム アプリケーションを簡単に実装できます。

以上がWebSocket はどのように機能するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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