RydingのブログでWebSocketの再接続のアルゴリズムの工夫について紹介しています。リアルタイムウェブアプリにおいて、何らかの理由でバックエンドとの接続が切れた場合、クライアントは一定間隔で再試行するというロジックを設定(参考コード)していたとします。その場合、大量のクライアントがいて、もし長い時間接続が不能であれば、再開時にバックエンドには大量のリクエストが集中することになります。-1秒の間でのランダムな実行タイミングをセットする。再接続に成功すれば、*k*を1にリセットする。-1秒の最大値は固定。そこに到達すれば、以降の試行では0から最大値の間のランダムな実行タイミングがセットされる。実装例としては、コードはこちら。