本文へスキップ
購入者向け06 / 62 ページ

サーバー側の更新をリアルタイムに受け取る(Polling / Long Polling / SSE)

Webアプリケーションは、もともとクライアント-サーバーモデルに基づいて設計されており、クライアント側が常に発信者となってサーバーにデータをリクエストします。そのため、サーバーがクライアントからのリクエストなしにデータを送信する仕組みはこれまでありませんでした。

例えば作成したジョブの状態が完了した事をクライアントに通知したい、ChatGPTのように重い計算をサーバー側で処理している中処理できた内容を逐次送信するなどのユースケースが考えられます。この問題に関する解決策をいくつか紹介します。

HTTPポーリング

HTTPポーリングは、クライアントが一定の間隔でサーバーにリクエストを送り、最新のデータがあるかを確認する仕組みです。ポーリングには「 ショートポーリング 」と「 ロングポーリング 」があり、ショートポーリングではクライアントが定期的にサーバーにリクエストを送り、即座にレスポンスを受け取ります。一方、 ロングポーリングでは、クライアントがリクエストを送信した後、サーバーがデータを返すまでコネクションを開いたままにしておきます。

ショートポーリングのメリットは、実装が容易であり、広く対応している点ですが、頻繁にリクエストを送ることでサーバーの負荷が増えます。

この続きは、購入者向けの内容です。

非表示コンテンツ 📝 10,157文字 🖼 3枚の画像

続きは購入後に閲覧できます。

この教材を購入 ↗