この記事は Google Cloud Translation APIを使用した自動翻訳です。
いくつかの文書は原文を読むのに良いかもしれません。
#WebSocketとServer-Sent Eventsを使用したバックエンド開発のリアルタイム通信
この記事では、WebSocketsとServer-Sent Eventsという2つのテクノロジを使用して、バックエンドアプリケーションにリアルタイム通信機能を追加する方法について説明します。各技術の基本と異なる技術を使いたいときに見てみましょう。最後に始めるのに役立ついくつかのコードスニペットを提供します。
WebSocket は、クライアントとサーバー間でデータがリアルタイムで前後に流れるように接続を開いたままにする方法です。接続が確立されると、当事者の1つが接続を閉じることを決定するまで開いたままになります。したがって、WebSocketはチャットアプリケーションやマルチプレイヤーゲームなどの継続的な通信を必要とするアプリケーションに非常に適しています。
WebSocketはHTTPと非常によく似たプロトコルを使用しているため、HTTPをサポートするすべてのライブラリまたはフレームワークで使用できます。接続を確立するために、クライアントは、WebSocket プロトコルを使用することを示す特定のヘッダーとともにサーバーに要求を送信します。その後、サーバーは独自のヘッダーで応答し、接続が確立されます。その後、クライアントからサーバーへ、またはその逆に送信されるすべてのデータは、確立された接続を通過します。
WebSocketを使用する利点の1つは、多重化と組み合わせて使用できることです。これは、単一の接続を使用して同時に複数の目的でデータを送受信できることを意味します。接続を長時間開いたままにしてデータを送受信するたびに新しい接続を確立したくない場合に便利です。
もう1つの利点は、接続が永続的であるため、サーバーからの応答を待たずにいつでもデータを送信するために使用できることです。これは、チャットアプリケーションやマルチプレイヤーゲームなど、リアルタイムでデータを転送する必要があるアプリケーションに役立ちます。
SSE(Server-Sent Events)は、サーバーからクライアントにイベントをリアルタイムで送信するテクノロジです。 WebSocketとは異なり、SSEはサーバーからクライアントへの一方向通信チャネルを使用します。つまり、クライアントはサーバーからデータを受信できるだけで、サーバーにデータを再送信することはできません。
SSE は、サーバー側のプッシュ通知とともに使用するように設計されています。これは、クライアントが積極的にデータを要求しなくても、サーバーがクライアントにデータを送信できることを意味します。したがって、SSEはリアルタイムでデータを受信する必要がありますが、株式相場インジケータやスポーツスコアなどのデータをサーバーに送信する必要がないアプリケーションに最適です。
SSEはHTML5標準の一部であるため、HTML5をサポートするすべてのライブラリまたはフレームワークで使用できます。接続を確立するために、クライアントは、SSE プロトコルを使用することを示す特定のヘッダーとともにサーバーに要求を送信します。その後、サーバーは独自のヘッダーで応答し、接続が確立されます。その後、サーバーからクライアントに送信されるすべてのデータは、確立された接続を通過します。
SSEを使用する利点の1つは、HTML5標準の一部であるため、ブラウザでうまくサポートされていることです。もう一つの利点は、接続が永続的であるため、クライアントからの応答を待たずにいつでもデータを送信するために使用できることです。これは、株価マーカーやスポーツスコアなど、リアルタイムでデータを転送する必要があるアプリケーションに役立ちます。
通常、クライアントとサーバー間の双方向通信が必要な場合はWebSocketを使用し、サーバーからクライアントへの単方向通信のみが必要な場合はSSEを使用する必要があります。