Skip to content

Socketio client keeps reconnecting after ping timeout, even after exhausting all reconnection attempts #5116

Open
@Hackatosh

Description

@Hackatosh

Describe the bug
What we observes :

  • Some of our users disconnect with a "ping timeout" logged server side
  • They try to reconnect multiple times using their current sid, but the server respond with a 400 (Session ID unknown). We have set reconnectAttempts to 3 and they seem to exhaust all the attempts.
  • They try to reconnect with a new sid
  • They encounter another ping timeout, and it starts all over again

And this goes on and on and on. Some of our users are making more than 100 000 requests a day to our websockets server only to do all those reconnections.
We noted that the impacted clients seems to exclusively use long-polling and never upgrade to websocket

What I do not understand is why does the socketio client try to connect with another sid after exhausting the 3 reconnection attempts.

To Reproduce

We managed to reproduce the problem by using a Chrome browser and limiting the bandwith to 1kb/s.

Socket.IO server version: 4.6.0
Socket.IO client version: 4.6.0

Expected behavior
We expect the reconnection to stop after exhausting all the reconnect attempts

Platform:

  • OS: Docker image built on top of node:16-alpine

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions