0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【3秒遅れたら負けるw】格闘ゲームで学ぶWebSocketとポーリングの違い

0
Posted at

はじめに

実務でポーリングを実装していたのですが理解が曖昧だったので復習のためブログをかこうと思いました!
ついでに調べたらWebSocketという通信の方法も出てきたので違いを比べていこうと思います!

ポーリングとは

一定時間ごとにサーバへ情報を確認しにいく仕組みのこと
例えば、AIに文章を生成してもらう場合を想像してもらうとわかりやすいかとおもいます!!

  • 3秒後:「生成終わった?」
  • 6秒後:「まだ終わっていない?」
  • 9秒後:「mada?」
  • 12秒後:「おわったよ〜」→ 結果を表示!

つまり、定期的にサーバーへ問い合わせることを指します!

WebSocketとは?

サーバーと接続を維持して、双方向にリアルタイム通信できる仕組みのこと

image.png

ストリートファイターで見ていきましょう!
例えば、友達とオンラインで格闘ゲームをしているとして

1. 自分がパンチボタンを押して
2. ゲーム側が操作情報を送信する
3. 相手側にその情報が届く
4. 相手の画面にもパンチの動きが反映される

もし3秒ごとのポーリングだったら、相手のパンチが最大3秒近く遅れて見えてしまう可能性があって
めちゃくちゃハンデ負ってますよねw

まとめ

つまり何が違うというと
ポーリング: 「何か変わった?」と定期的に聞く。
WebSocket: 接続を維持して、変化があったらすぐ伝えられる。
ここでエンジニアとして覚えておきたいのは、「どちらが優れているか」ではなく「なぜその通信方法が必要なのか」 を考えることだと思いました!✨

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?