Allow disabling ping/pong? #312

Open
STRML opened this Issue Mar 5, 2015 · 8 comments

Projects

None yet

4 participants

@STRML
STRML commented Mar 5, 2015

It would be nice if a 0 value for pingInterval or pingTimeout could disable ping/pong checking entirely.

When used with an abstraction layer like Primus, the ping/pong is redundant and can sometimes cause situations where engine.io terminates the connection and Primus doesn't pick up on it. In those cases Primus might not reconnect.

@3rd-Eden
Contributor
3rd-Eden commented Mar 6, 2015

@STRML if Primus doesn't pick up those connection terminations it's a bug in Primus so please report that in https://github.com/primus/primus as for the disabling of ping/pong's. I would love to see that as well.

@darrachequesne
Contributor

Closed due to inactivity, please reopen if needed.

@lpinca
Contributor
lpinca commented Jan 22, 2017 edited

Maybe it makes sense to reopen as this was a feature request which I also support.

@darrachequesne
Contributor

PR is welcome!

@lpinca
Contributor
lpinca commented Jan 22, 2017 edited

@darrachequesne thanks.
If I'm not wrong Engine.IO sends ping messages from client to server. We are currently doing the same in Primus but just FYI we are considering reversing the direction of pings and make the server send them to the client as browsers started to throttle timers. See primus/primus#348 if you are interested.

@darrachequesne
Contributor

@lpinca You're right, pings are sent by the client. But a timer is set on both the client and the server (allowing to detect any unavailability from the other side), isn't that the case with primus?

@lpinca
Contributor
lpinca commented Jan 22, 2017

Yes, but the client timer that sends the ping is delayed by the browser so the server incorrectly closes the connection.
Imagine that you used setTimeout(sendPing, 20000); on the client. The sendPing callback is not actually called after 20 sec but after 40 sec.

Hope it makes sense :)

@STRML
STRML commented Jan 22, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment