Not able to connect to socket.io in react native

Viewed 744

I am trying to establish socket.io connection between nodejs and react-native. But unfortunately it is not working.

The issue is that client side do not get connected with server via sockets.

Here is nodejs (server-side) code

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

server.listen(process.env.PORT || 8000, () => console.log('server is running on port 8000'));

    app.use(express.static('client/build'));
    const path = require('path');
    app.get('*', (req, res) => {
      res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
    });

io.on('connection', socket => {
    console.log('connection')})


Here is react-native(client-side) code (trimmed)

import React from 'react'
import { Button } from 'react-native'
import io from 'socket.io-client';

const Room = props => {
  const sock = useRef();

useEffect(() => {
      sock.current = io.connect(<HOSTNAME>, {
        forceNode: true,
        transports: ['websocket'],
      });
      //to check if mobile connected to server
      console.log('test');
      console.log('check 11', sock.current.connected);
      sock.current.on('connect', function() {
        console.log('check 2', sock.current.connected);
      });
  });


}

When I try to connect I am not getting 'check 2' message in my console, which is to be printed on execution of sock.current.on('connect'....

Libraries used: react-native version:0.62.1, socket.io-client version:2.3.0 (client-side), socket.io version:2.3.0 (server-side)

0 Answers
Related