2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WebSocketについて完全に理解した

Posted at

わかりやすくするためざっくりとした概念を記載しています。
一部、一部正確性を欠く可能性があります。

WebSocketとは

WebSocketは、クライアント(例: ブラウザ)とサーバーの間で、双方向かつリアルタイムにデータをやり取りできる通信技術です。

通常のHTTP通信では、クライアントからリクエストを送信して初めてサーバーが応答を返します。しかし、WebSocketでは最初に一度だけ接続を確立すると、その後はクライアントとサーバーの間で自由にメッセージを送り合うことができます。

WebSocketの仕組み

ハンドシェイク

最初にクライアントがサーバーに「WebSocket接続を開始したい」というリクエストを送ります。サーバーがこれを承認すると、接続が確立されます。

データの双方向通信

接続が確立されると、クライアントとサーバーは互いに自由にデータを送受信できます。これにより、リアルタイム性が求められるアプリケーションで高いパフォーマンスを発揮します。

HTTPとWebSocketの違い

HTTP通信の仕組み

HTTP通信では、クライアントが必要なときにリクエストを送信し、その都度サーバーからデータを受け取ります。この方式はシンプルで、通常のウェブサイトに適しています。しかし、以下の制約があります。

毎回リクエストを送らないと情報が取得できない。
リアルタイム性が低い。


ブラウザでページを更新するたびに最新データが取得される。
チャットアプリの場合、何度もリクエストを送らないと新しいメッセージが表示されない。

WebSocket通信の仕組み

WebSocketでは、最初に接続を確立すれば、その後はクライアントとサーバーが自由にデータを送り合えます。これにより、リアルタイムなデータ更新が求められるシステムで高い効率を実現します。


サーバーが新しいデータを検知すると、自動でクライアントに通知を送る。
チャットアプリで新しいメッセージが即座に反映される。

特徴 HTTP通信 WebSocket通信
通信方向 クライアント → サーバーのみ クライアント ↔ サーバー(双方向)
データ送受信の仕組み リクエスト・レスポンスのセット 接続後、自由にデータ送信可能
リアルタイム性 低い 高い
接続の効率 リクエストごとに接続を作る 最初の接続を維持し続ける

WebSocket通信の全体像

まとめ

WebSocketを活用することで、チャットアプリやリアルタイム通知のような高パフォーマンスが求められるアプリケーションの効率が飛躍的に向上します。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?