javascript - Socket.io GET/POST 404
问题描述
我正在寻找一个类似的问题,但我仍然无法解决这个问题。我正在使用 ReactJs、Node/Express、Mongoose 和 Socket.io 开发一个聊天应用程序。一切正常,数据库正在运行,服务器正在运行,所以现在我想添加套接字。我正在尝试将客户端与服务器连接,但我收到错误(大约每 2/3 秒)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
});
});
解决方案
推荐阅读
- apache-nifi - InvalidMagicIdException:无法在 infinispan 中添加缓存
- google-apps-script - 谷歌表格脚本编辑器 - 如果 E 列中有特定文本,则发送电子邮件
- vim - 如何输入与上行字符数一样多的连字符?
- html - react 使用 html4、html5 还是 jsx?
- java - json反序列化对于有效格式失败
- python - 了解 unicodedata.normalize() 的 unistr
- mysql - 如何在执行 sql 查询时根据整数变量设置字符串值?
- c# - 查找 2 个数据集之间的值差异并在 ASPX 页面上突出显示差异
- javascript - 如何将普通的 javascript 代码转换为使用事件处理的角度组件特定代码
- python - 如何使用 Python 从 Json 文件中的嵌套列表中提取对象?