𝗦𝗵𝗼𝗿𝘁 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗟𝗼𝗻𝗴 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗔𝗻𝗱 𝗦𝗦𝗘

サーバーからクライアントにデータを送信する必要があります。そのための3つの方法を紹介します。

ショートポーリング

レストランの客を想像してみてください。客は5秒ごとにウェイターに「料理はできましたか?」と尋ねます。

客は一定の間隔でこの質問を繰り返します。

問題点:

  • サーバーへのリクエストが多すぎる。
  • 更新が遅れる。もし質問の1秒後に料理が完成した場合、客は次に尋ねるまでさらに4秒間待つことになります。
  • ネットワークリソースを浪費する。

ロングポーリング

客はウェイターにこう言います。「料理ができたら教えてください」。

ウェイターはテーブルのそばに留まって待ちます。シェフが料理を完成させたら、ウェイターはすぐに客に伝えます。もし料理に時間がかかりすぎた場合は、ウェイターはまだ準備ができていないことを客に伝えます。

問題点:

  • コネクションが長時間開いたままになる。
  • コネクションのタイムアウトが発生する可能性がある。
  • 大勢の客を一度に管理するのが難しい。

Server Sent Events (SSE)

株価のライブ配信を想像してみてください。クライアントは一度だけコネクションを開きます。サーバーはそのコネクションを開いたままにします。価格が変動するたびに、サーバーはクライアントに更新情報を送信します。

主な特徴:

  • これは一方向の通信です。
  • データはサーバーからクライアントへとのみ流れます。
  • クライアントはこのコネクションを通じてメッセージを返信することはありません。

Source: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5