WebSocket は、クライアントとサーバーの間に全二重通信チャネルを提供し、リアルタイムの双方向データ送信をサポートする TCP ベースのプロトコルです。接続の確立、データ送信、および接続の終了は、WebSocket の完全なプロセスです。
-
接続を確立:
- クライアントは WebSocket ハンドシェイク要求を開始します。クライアントは特別な
を含む HTTP リクエストを送信します。
Upgrade
ヘッダー。プロトコルを HTTP から WebSocket にアップグレードすることを示します。
- サーバーはハンドシェイク要求を受信した後、検証とプロトコルのアップグレード処理を実行します。サーバーはリクエスト ヘッダーをチェックし、WebSocket プロトコル要件に準拠しているかどうかを確認し、必要なプロトコルのアップグレードを実行します。
- サーバーはハンドシェイク応答を返します。ハンドシェイク検証に合格すると、サーバーは
を含むメッセージを返します。
Upgrade
ヘッダーの HTTP 応答にはステータス コード 101 Switching Protocols があり、WebSocket プロトコルへのアップグレードが成功したことを示します。
- 接続が確立されました。クライアントとサーバー間の TCP 接続は WebSocket 接続に正常にアップグレードされ、双方がリアルタイムの双方向データ送信を開始できるようになりました。
-
###データ送信:###
クライアントとサーバーは、双方向通信に WebSocket 接続を使用できます。
- クライアントとサーバーは、WebSocket メッセージを送信することでデータを交換できます。メッセージはテキスト形式またはバイナリ形式にすることができます。
- メッセージは
経由で送信できます
- send()
メソッドが送信されて渡されます
onmessage
イベント受付中。クライアントとサーバーの両方が、データ転送にこれらのメソッドとイベントを使用できます。
接続を閉じる:-
クライアントまたはサーバーは、WebSocket 接続を閉じることを選択できます。
- 接続を終了する側は、相手に特別なクローズ フレーム (Close Frame) を送信します。
- 相手はクローズフレームを受信すると、応答としてクローズフレームを送信します。
- 双方が終了フレームを受信すると、相互間の WebSocket 接続が終了します。
-
次の点に注意する必要があります:
WebSocket 接続が確立されると、クライアントとサーバーの間でいつでもメッセージを送受信できるようになり、HTTP のようにリクエストごとに新しい接続を確立する必要はありません。
- WebSocket 接続は永続的であり、長期間通信を維持できます。
- WebSocket 接続では、ハートビート メカニズムを使用して、接続が生きているかどうかを検出できます。
- WebSocket 接続では、データの圧縮と暗号化を実行して、パフォーマンスとセキュリティを向上させることができます。
-
WebSocket はリアルタイムの双方向通信を提供し、チャット アプリケーションやリアルタイム ゲームなどのリアルタイム データ送信を必要とするアプリケーションに適しています。
以上がWebSocket: 接続の確立から切断までの完全なプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。