Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@Takagi_

HTTP PollingとWebSocket、それぞれのざっくりとした違い

HTTP Polling

  • 新着データの要求(Requset)に対し、データが存在した場合はすぐに応答(Response)を返しコネクションを切断する
  • 新着データの要求に対し、データが存在しない場合もコネクションを切断する
  • そのため、サーバーに対して定期的に要求(Request)を行う必要がある
  • サーバー側からクライアントに直接送信することができない

HTTP Long Polling

  • 新着データの要求に対し、データが存在した場合にすぐに応答を返しコネクションを切断する
  • 新着データの要求に対し、データが存在しない場合はサーバーとクライアント間のコネクションを維持したままとなる
  • サーバー側で新着データを用意できたら応答を返しコネクションを切断する。その間、コネクションは維持されたまま
  • 上記の定期的に要求を行うHTTP Pollingと比較すると、遅延が少ない
  • コネクションを維持した状態で一定時間経過した場合には、切断し、再度要求を送り直す

WebSocket

  • 新着データの要求に対し、データが存在した場合にすぐに応答を返すが、コネクションは切断せず維持したままとなる
  • 新着データの要求に対し、データが存在しない場合も、サーバーとクライアント間のコネクションを維持したままとなる
  • サーバー側で新着データを用意できたら応答を返し、コネクションを維持し続ける
  • 上記2つと比較すると、最初から最後まで繋ぎっぱなしで要求と応答を繰り返すことができる

参考になったページ

WebSocketのキホン(SlideShare)
HTTP Long Pollingとは(Qiita)
リアルタイムなwebアプリを実現する方法(ポーリング、Comet、Server Sent Events、WebSocket)(Qiita)
Push技術(Wikipedia)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What are the problem?