Closed11

「システム設計の面接試験」メモ

YaonaYaona

HTTPはクライアント主導型。
そのため、サーバから送信するのは難しい。
サーバ主導型はポーリング、ロングポーリング、WebSocketなどがある。

YaonaYaona

ポーリングはクライアントが定期的に問い合わせを実行する方法。
頻度によるが、基本的には「No」が返ってくるため、「Yes」を得るまでに貴重なサーバリソースを消費する可能性がある。

YaonaYaona

ロングポーリングはタイムアウトまで接続を維持し、ポーリング回数を減らす。
が、非効率である。
サーバはクライアントが切断したかわからない。
タイムアウト後も定期的に接続される。

YaonaYaona

WebSocketを利用するのが一般的。
チャットサービスのようなステートフルサービスに利用するのが一般的。

YaonaYaona

ただし、双方向通信が必要でないならWebSocketよりロングポーリングのほうが望ましい。

YaonaYaona

ハートビート機構。
定期的にハートビートイベントを飛ばすことで、オンラインかを判定。
オンライン判定後、x秒後に再度ハートビートイベントを送信する。
これを繰り返す。
もし、送信されなかった場合は、オフラインと判定。

このスクラップは2ヶ月前にクローズされました