-
Notifications
You must be signed in to change notification settings - Fork 564
require same transports unless upgrading #177
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
Conversation
@guille ping? i've been using this in production, and have stopped receiving complaints about connection errors |
I think we need more comments in the code to explain the rationale. We also need to document the new parameter in |
This absolutely needs tests as well to avoid regressions |
Any action on this? I've just found that the same thing happens on a particular wireless operator in Australia, owing to their use of a transparent proxy implemented with squid. If there are no current plans to write tests and get this merged, I'd be willing to wade around in whatever the testing bits are here and figure it out, but it would probably take me a lot longer than it'd take someone who's already familiar with engine.io internals. |
Go for it.
|
Please comment this test: https://gist.github.com/kapouer/7634923 |
Thanks a lot @kapouer you the man |
Is this PR still relevant? |
Very much so. Upgrading breaks polling on Squid and others. |
Because the websocket request gets passed as a regular request which then makes the socket error. It should be ignored instead. The carnegie guys are working on this one. |
Some proxies - such as nginx and squid - don't support websocket. The client attempting to upgrade its transport caused the engine.io connection to break (see socketioGH-177). THe server now checks within handleRequest to see if the transport has changed without an upgrade request - if this is the case, the upgrade request is denied (defaults to polling) and the connection is maintained
fixes socketio/engine.io-client#168