Socket IO - React app can't connect to NodeJS server

Viewed 402

This is my server-side code

const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);

io.on('connection', (socket) => {
  console.log('connected');
  socket.on('message', (msg) => {
    console.log(msg);
  });
});

const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}.`);
});

And this is my client-side React Native component

import React, {useEffect} from 'react';
import {View, Text} from 'react-native';

import clientio from 'socket.io-client';
const ENDPOINT = 'http://127.0.0.1:3000';

export default () => {
  useEffect(() => {
    const socket = clientio(ENDPOINT);
    console.log(socket.connected);
    socket.emit('message', {message: 'hello'});
  }, []);

  return (
    <View>
      <Text> Hello </Text>
    </View>
  );
};

The console.log in useEffect always logs out "false" + I don't get any logs on server-side.

Tried different ports, changing uri to "http://localhost:3000"

I'm using packages:

"socket.io": "2.3.0" in NodeJS app

"socket.io-client": "2.3.0", in React app

0 Answers
Related