fix for tranport fallback and multiple connection on reconnect#422
Closed
vedratna wants to merge 1 commit intosocketio:masterfrom
Closed
fix for tranport fallback and multiple connection on reconnect#422vedratna wants to merge 1 commit intosocketio:masterfrom
vedratna wants to merge 1 commit intosocketio:masterfrom
Conversation
|
+1 experiencing this issue as well, i'll try your patch |
This pull request was closed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
we got some complains that socket.io doesn't connect to some proxy environment where websocket is blocked. Ideally it should fallback to xhr-polling but what happens is :
It tries to connect through websocket, times out, fallback to xhr-polling, gets connected through xhr-polling, now gets an onerror and onclose from websocket which makes socket disconnected and so on.....
This happens because old transport still consist the reference of socket and hence affects the actual connection.
As I mentioned above multiple transport shares the same socket reference and hence causes the multiple connection.
Fix:
Detach old transport when going to connect to new transport by changing the socket reference to 'orphan' socket (as per the current design it can't be null) and close the transport.