Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Multiple noop packets sent on upgrade #174

Open
plievone opened this Issue · 7 comments

3 participants

@plievone

Hi, it seems that a client can occasionally get dozens on noop packets from engine.io server during websocket upgrade, perhaps due to checkIntervalTimer in lib/socket.js triggering ten times per second, and not checking if it has succeeded in sending a noop packet already? Or is it intended to just keep sending until upgrade packet is received. The issue is seen mostly behind slow connections, of course.

@rauchg
Owner

master or latest tag?

@rauchg
Owner

@plievone after sending one packet we should clear the timer. GOOOD catch

@rauchg rauchg closed this
@plievone

I guess you closed this by accident? :)

Now, perhaps sending multiple noop packets is intentional -- in my brief testing now the client failed to upgrade with only one packet, as it came before polling cycle started pausing and then the situation stalled until eventually ping timeout was emitted and the socket was closed. If it really is so, there might be a problem with the process here... Hopefully it is my setup (open socket, client side close it in 300 ms, then open it again in 1000 ms, then see what happens).

@plievone

Hi @guille, thanks for this, but unfortunately now the client can miss the noop packet (it comes via polling transport, whereas probe pong comes via websocket, the ordering can change?) and stall in upgrade? Perhaps best for now would be to have a longer, 500 ms interval just in case, and trigger it also on the leading edge separately.

@rauchg
Owner
@rauchg rauchg reopened this
@rauchg rauchg closed this in d352ccd
@rauchg rauchg reopened this
@rauchg
Owner

Open for discussion on how to improve

@defunctzombie
Collaborator

@plievone Is this still an open issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.