New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow disabling ping/pong? #312

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

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

This comment has been minimized.

Show comment
Hide comment
@3rd-Eden

3rd-Eden Mar 6, 2015

Contributor

@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.

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

This comment has been minimized.

Show comment
Hide comment
@darrachequesne

darrachequesne Oct 24, 2016

Contributor

Closed due to inactivity, please reopen if needed.

Contributor

darrachequesne commented Oct 24, 2016

Closed due to inactivity, please reopen if needed.

@lpinca

This comment has been minimized.

Show comment
Hide comment
@lpinca

lpinca Jan 22, 2017

Contributor

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

Contributor

lpinca commented Jan 22, 2017

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

@darrachequesne

This comment has been minimized.

Show comment
Hide comment
@darrachequesne

darrachequesne Jan 22, 2017

Contributor

PR is welcome!

Contributor

darrachequesne commented Jan 22, 2017

PR is welcome!

@lpinca

This comment has been minimized.

Show comment
Hide comment
@lpinca

lpinca Jan 22, 2017

Contributor

@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.

Contributor

lpinca commented Jan 22, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@darrachequesne

darrachequesne Jan 22, 2017

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?

Contributor

darrachequesne commented Jan 22, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@lpinca

lpinca Jan 22, 2017

Contributor

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 :)

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

This comment has been minimized.

Show comment
Hide comment
@STRML

STRML Jan 22, 2017

STRML commented Jan 22, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment