prathmesh
prathmesh

Reputation: 37

Getting connect_error due to xhr poll error while connection of socket.io

i am using socket.io version 4.1.3 i was expecting to connect to the server but getting error of polling-xhr.js:198 GET http://localhost:7000/socket.io/?EIO=4&transport=polling&t=Ni6qzFI 404 (Not Found)

server-side:

import express from 'express';
import bodyParser from 'body-parser';
import cors from 'cors';
import mongoose from 'mongoose';
import { createServer } from 'http';
import { Server } from 'socket.io';
import postRoutes from './routes/routes.js';

const app = express();
app.use(bodyParser.json({ limit: '30 mb', extended: true }));
app.use(bodyParser.urlencoded({ limit: '30 mb', extended: true }));


app.use(cors());

//routes

app.use('/posts', postRoutes);
//database
const CONNECTION_URL = 'mongodb+srv://mernpratice:[email protected]/myFirstDatabase?retryWrites=true&w=majority';
const PORT = process.env.PORT || 7000;
const http = createServer(app);
const io = new Server(http, {
  cors:{
    origin:'*',
  }
});


io.on('connection', socket => {
  console.log('Conection to socket.io');
  socket.on('message', ({ name, message }) => {
    io.emit('message', { name, message })
  })
});

mongoose.connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => app.listen(PORT, () => console.log(`Server Running on Port: http://localhost:${PORT}`)))
  .catch((error) => console.log(`${error} did not connect`));

mongoose.set('useFindAndModify', false);

and client-side

import io from 'socket.io-client';

const socket = io.connect('http://localhost:7000');

socket.on("connect_error", (err) => {
    console.log(`connect_error due to ${err.message}`);
  });

thank you.

Upvotes: 1

Views: 5636

Answers (1)

prathmesh
prathmesh

Reputation: 37

it turns out i was using diff server for mongoose and for socket.io problem gets solved when i set up created constant and used for both.

import express from 'express';
import bodyParser from 'body-parser';
import cors from 'cors';
import mongoose from 'mongoose';
import { createServer } from 'http';
import { Server } from 'socket.io';
import postRoutes from './routes/routes.js';

const app = express();
app.use(bodyParser.json({ limit: '30 mb', extended: true }));
app.use(bodyParser.urlencoded({ limit: '30 mb', extended: true }));


app.use(cors());

//routes

app.use('/posts', postRoutes);
//database
const CONNECTION_URL = 'mongodb+srv://mernpratice:[email protected]/myFirstDatabase?retryWrites=true&w=majority';
const PORT = process.env.PORT || 7000;

const server = app.listen(PORT, () => {
  console.log("Listening on port: " + PORT);
});


mongoose.connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => server )
  .catch((error) => console.log(`${error} did not connect`));

mongoose.set('useFindAndModify', false);


const io = new Server(server, {
  cors:{
    origin:'*',
  }
});


io.on('connection', socket => {
  console.log('Conection to socket.io');
  socket.on('message', ({ name, message }) => {
    io.emit('message', { name, message })
  })
});

Upvotes: 2

Related Questions