タイトル: WebSocket の原理分析とコード例
本文:
インターネットの発展とアプリケーション シナリオの継続的な拡大に伴い、従来の HTTP プロトコル ベースの要求 - 応答モードは、徐々に高いリアルタイム パフォーマンスの要求を満たすことができなくなります。これに関連して、クライアントとサーバーの間に双方向の通信チャネルを確立してリアルタイムのデータ送信を実現できる HTML5 のプロトコルである WebSocket が登場しました。
WebSocket の原理:
WebSocket はまったく新しいプロトコルを採用しており、HTTP と比較して「長い接続」方式、つまり接続が確立された後、クライアントとサーバーの間の接続が長くなります。頻繁に HTTP リクエストと応答を行わなくても、通信チャネルは常に開いたままになるため、ネットワークの負荷が軽減され、リアルタイムのパフォーマンスと効率が向上します。
WebSocket プロトコルは、HTTP プロトコルを使用して接続を確立しますが、接続が正常に確立された後、両者は HTTP リクエストに頼らずに直接データを送信します。 TCP/IP プロトコルに基づいており、非同期通信をサポートしており、クライアントとサーバーの間で双方向にデータを転送でき、サーバーはクライアントにデータをアクティブにプッシュできます。
WebSocket の通信プロセスは大まかに次のとおりです。
通信のセキュリティを確保するために、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 サイトの他の関連記事を参照してください。