【ぽーりんぐ】

ポーリング とは?

💡 『新しい情報ある?』を繰り返し聞きに行く通信スタイル
📌 このページのポイント
ポーリング vs プッシュ(WebSocket) ポーリング クライアント サーバー リクエスト 空レスポンス リクエスト 空レスポンス リクエスト データあり! 定期的にリクエスト送信 → 無駄な通信が多い プッシュ(WebSocket) クライアント サーバー 接続確立 接続OK 常時接続 変更通知! 変更通知! 変更時のみサーバーから通知 → 効率的でリアルタイム
ポーリングとプッシュの比較
ひよこ ひよこ

ポーリングって、ずっと『まだ?まだ?』って聞き続けるってこと?

ペンギン先生 ペンギン先生

まさにそのイメージ!たとえば5秒ごとにサーバーに『新しいメッセージある?』ってリクエストを送るんだ。あればデータを受け取る、なければ『ないよ』って返ってくる。

ひよこ ひよこ

何もないときも聞いてるのはちょっと無駄じゃない?

ペンギン先生 ペンギン先生

そのとおり。だからリアルタイムチャットみたいにすぐ反応が欲しい場面ではWebSocketを使うことが多いよ。サーバー側から『新しいデータあるよ!』って通知してくれるからね。

ひよこ ひよこ

じゃあポーリングの出番はないの?

ペンギン先生 ペンギン先生

いやいや、まだまだ現役だよ。たとえばCI/CDのビルド状況を確認するとか、更新頻度が低い場面では十分使える。実装もシンプルだしね。setIntervalでAPIを叩くだけだから、入門者にも扱いやすいんだ。

ひよこ ひよこ

ロングポーリングっていうのもあるの?

ペンギン先生 ペンギン先生

あるよ。通常のポーリングは「聞いてすぐ返事」だけど、ロングポーリングサーバーが新しいデータができるまでレスポンスを保留するんだ。データが来た瞬間に即応答できるから、通常のポーリングより反応が速く、無駄なリクエストも減るよ。

ひよこ ひよこ

WebSocketロングポーリング、どっちを使えばいいの?

ペンギン先生 ペンギン先生

リアルタイム性が高い場面(チャット、ゲーム、株価表示)ならWebSocketが向いているよ。でもロードバランサープロキシとの相性が良いのはロングポーリングで、インフラが制約される環境では今でも使われている。実はSlackの初期バージョンはロングポーリングで実装されていて、後からWebSocketに移行したんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
ポーリングは、定期的にサーバーへ問い合わせることで更新を検知する通信手法。シンプルだが無駄な通信が発生しやすいため、リアルタイム性が求められる場面ではWebSocketなどと比較検討される。
📖 おまけ:英語の意味
「Polling」 = 投票、世論調査
💬 繰り返し状況を確認する(poll)という意味から、定期的に問い合わせる仕組みを指すようになった
← 用語集にもどる