リアルタイム通信を実現するWEB技術の違い【ポーリング、ロングポーリング、SSE、WebSocket】

リアルタイム通信を実現する方法として

  • ポーリング
  • ロングポーリング
  • SSE
  • WebSocket

の4つがあるらしい。

その違いをメモ。

違い

  • ポーリング:
    • クライアント側が定期的に「更新されてない?」と尋ねて、それに対してサーバー側は更新されていない場合は「更新されないよ」と返し、更新されていた場合は更新されたデータを返す。これをひたすら繰り返す方式。ポーリング
  • ロングポーリング:
    • クライアント側が「更新されてない?」と尋ねて、それに対してサーバー側は更新されるまで返事を保留し、更新されたタイミングで「更新されたよ」と更新されたデータを返す。そしてサーバーから返事が帰ってきたらすぐさまクライアント側は「更新されてない?」と尋ねる。これをひたすら繰り返す方式。
      ロングポーリング
  • SSE(Server Sent Events):
    • クライアント側が「更新されてない?」と尋ねて、それに対してサーバー側は更新されるまで返事を保留し、更新されたタイミングで「更新されたよ」と更新されたデータを返す。さらにデータを返した後も接続は切らずにそのまま繋いでおき、今後データが更新されるたびに「更新されたよ」と更新されたデータを返す。
      sse(server sent events)
  • WebSocket:
    • SSEと似ているが、以下の2点が違う
      1. クライアント側からもデータを送れる(SSEはサーバ→クライアントという1方向にしか送れない)
      2. 使用するプロトコルがWebSocket専用のもの。(WebSocket以外の方法ではすべてHTTPプロトコルのみで行われてる)
        websocket

 

おわり

 

画像の引用元:ハンズオンNode.js

HTML/CSS/JavaScript
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました