【ろんぐぽーりんぐ】
ロングポーリング とは?
最終更新:
💡 更新かタイムアウトまで、HTTPの返事を待つ
HTTPリクエストへの応答を、更新やタイムアウトまで待たせる通信方法。応答後の再問い合わせ、TCP接続との違い、実装上の注意を解説します。
📌 このページのポイント
普通のポーリングと何が違う?
ずっと同じ応答で送るの?
一回の応答は完了するよ。その後、クライアントが通常は次のリクエストを送る。一つの応答を終えずにデータを送り続けるストリーミングとは、この点が違うんだ。
毎回つなぎ直すのは大変そう。
WebSocketが使えたら、不要?
実装では、どこに注意する?
応答を待っているリクエストの数や、サーバー・プロキシのタイムアウトを確認する。通信失敗後の再試行や、更新を取りこぼさない仕組みも考えよう。待ち時間や再試行間隔を、どの環境でも同じ固定値にするわけではないんだ。
もっと詳しく知りたい人へ
一回の応答には、一件の更新しか入らない?
複数の更新をまとめて返す設計も可能です。どこまで受け取ったかを確認する識別子などは、アプリ側で決めます。
応答が遅いのは、必ず障害?
更新待ちとして保留する動作と、通信や処理の障害を区別します。正常な待ち時間、タイムアウト時の応答、エラー後の再試行を定義しておきます。
📖 おまけ:英語の意味
「Long Polling」 = 長く待つポーリング
💬 定期的に問い合わせるポーリングに対し、一回の問い合わせを保留する時間を長くする方法です。