fix: multiple connections issue#3
Open
focux wants to merge 3 commits into
Open
Conversation
|
@focux this is clever! i have tested your fix, and by wrapping the socket in thank you for your contribution! |
realdennis
reviewed
Apr 2, 2020
Contributor
There was a problem hiding this comment.
Awesome, overall is good, the last pr #2 did not concern about ref will change in render function, I thought your approach is good to fix the #1 , since the return array is empty so the instance will be created once.
But please check L8, I think the return value would be function instead socket instance.
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.
This pull request aims to fix #1. I saw an old PR (#2) trying to fix this same issue using refs, but the problem with that was that it was setting the
refinside the render function and not inside anuseEffecthook, therefore, it was creating a new connection of socket.io in each render.The approach that I followed was creating and storing the instance of socket.io inside an
useEffecthook. The only caveat that this approach has is that in the first render it will return a null value and after that, the socket instance; this because of theuseEffecthook.