Socket.io GET / POST 404 - PullRequest
       5

Socket.io GET / POST 404

0 голосов
/ 08 апреля 2020

Я искал похожую проблему, но все еще не могу решить эту проблему. Я работаю над приложением чата в ReactJs, Node / Express, Mon goose и Socket.io. Все работает, база данных работает, сервер работает, поэтому теперь я хочу добавить сокет. Я пытаюсь подключить клиентскую часть к серверу, но получаю сообщение об ошибке (примерно каждые 2 / 3se c) POST / GET http://localhost: 3000 / socket.io /? EIO = 3 & transport = polling & t = N5PeKkf 404 (не найдено).

Реагировать:

  const host = 'http:localhost:5000/api/rooms'
  const [endpoint, setEndpoint] = useState('')

  const {width,mobileWidth} = props;

  useEffect(()=>{
    setEndpoint(`${host}${props.location.pathname}`);
    socket = io(endpoint);
    const roomId = props.location.pathname.slice(1,props.location.pathname.length);

    socket.emit('join', {roomId})

  },[endpoint])

Узел:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const socketIo = require("socket.io");
const http = require("http");

const HttpError = require('./models/http-error');
const roomsRouter = require('./routes/rooms-routes');
const usersRouter = require('./routes/users-routes');

const app = express();

mongoose
   .connect(
      `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASSWORD}@cluster0-lnoai.mongodb.net/${process.env.DB_NAME}?retryWrites=true&w=majority`
   )
   .then(() => {
      app.listen(process.env.PORT || 5000);
   })
   .catch(err => {
      console.log(err);
   });


const server = http.createServer(app);
const io = socketIo(server);

app.use(bodyParser.json());

app.use((req, res, next) => {
   res.setHeader('Access-Control-Allow-Origin', '*');
   res.setHeader(
      'Access-Control-Allow-Headers',
      'Origin, X-Requested-With, Content-Type, Accept, Authorization'
   );
   res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE');

   next();
});

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


app.use('/api/rooms', roomsRouter);
app.use('/api/users', usersRouter);

app.use((req, res, next) => {
   throw new HttpError('Route not found.', 404);
});

app.use((error, req, res, next) => {
   if (res.headerSent) {
      return next(error);
   }

   res.status(error.code || 500).json({
      message: error.message || 'An uknown error occurres!',
      errorCode: error.code || 500
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...