I want my React component to listen to events from socket.io. My code works if I have the HTML files include:
<script src="socket.io/socket.io.js"></script>
and then the component's constructor() has:
this.socket = io(); // eslint-disable-line no-undef
The HTML file retrieves the proper socket.io client code from my Express server, and everything's fine.
But this feels so cheesy. I hate to rely on the global window name space to find the io() function. What's the best practice for letting a React component connect through socket.io to the server? Thanks.
I would create the socket on
componentWillMount
andsetState
on the desired event callback.Thanks for sharing. I used the componentWillMount method. I also added a connection detection:
If you're using a bundler like Webpack or Browserify, you can use
socket.io-client
.For instance: