Experimental initial connection fix #2250
Merged
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.
So far the only way I've been able to reproduce the initial connection failure is to spawn 10+ tabs at a time. What I saw was that sometimes the initial message from the client doesn't make it to
onControlMessage
callback which causes the handshake to hang. I don't know yet why that is but for now I've made it so both ends will initiate the handshake so no matter what order or when they start listening everything should be fine.So far with this I haven't seen any connection failures due to incomplete handshakes (although when I spawn too many windows my browser seems to just not make websocket connections in the first place, but that results in different errors than the reported ones).