𝗦𝗵𝗼𝗿𝘁 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗟𝗼𝗻𝗴 𝗣𝗼𝗹𝗹𝗶𝗻𝗴, 𝗔𝗻𝗱 𝗦𝗦𝗘
サーバーからクライアントにデータを送信する必要があります。そのための3つの方法を紹介します。
ショートポーリング
レストランの客を想像してみてください。客は5秒ごとにウェイターに「料理はできましたか?」と尋ねます。
客は一定の間隔でこの質問を繰り返します。
問題点:
- サーバーへのリクエストが多すぎる。
- 更新が遅れる。もし質問の1秒後に料理が完成した場合、客は次に尋ねるまでさらに4秒間待つことになります。
- ネットワークリソースを浪費する。
ロングポーリング
客はウェイターにこう言います。「料理ができたら教えてください」。
ウェイターはテーブルのそばに留まって待ちます。シェフが料理を完成させたら、ウェイターはすぐに客に伝えます。もし料理に時間がかかりすぎた場合は、ウェイターはまだ準備ができていないことを客に伝えます。
問題点:
- コネクションが長時間開いたままになる。
- コネクションのタイムアウトが発生する可能性がある。
- 大勢の客を一度に管理するのが難しい。
Server Sent Events (SSE)
株価のライブ配信を想像してみてください。クライアントは一度だけコネクションを開きます。サーバーはそのコネクションを開いたままにします。価格が変動するたびに、サーバーはクライアントに更新情報を送信します。
主な特徴:
- これは一方向の通信です。
- データはサーバーからクライアントへとのみ流れます。
- クライアントはこのコネクションを通じてメッセージを返信することはありません。
Source: https://dev.to/guruharish_b/short-polling-long-polling-and-sse-20o5