【发布时间】:2021-03-12 02:18:17
【问题描述】:
我想在我的项目中使用socket-io,并在服务器上建立了它(node-js)和
客户端 (react) 但它似乎无法正常工作,并且在服务器上的控制台中,当用户连接时我看不到 user connected。
app.js(服务器):
const express = require("express");
const app = express();
const PORT = process.env.PORT || 5000;
(async () => {
await mongoConnect(error => {
if (error) {
console.log(error);
} else {
const server = app.listen(PORT, () =>
console.log(`server is running on ${PORT} port`)
);
const io = require("./utils/socket-io/socket-io").initialSocket(server);
io.on("connection", socket => {
console.log("user connected");
});
}
});
})();
socket-io.js(服务器):
const socketIo = require("socket.io");
let io;
module.exports = {
initialSocket: server => {
io = socketIo(server);
return io;
},
getIo: () => {
if (!io) {
throw new Error("no connection to socket-io");
}
return io;
}
};
posts.js(客户端):
import socketIo from "socket.io-client";
useEffect(() => {
socketIo("http://localhost:5000");
}, [socketIo]);
【问题讨论】:
-
事件是connect,io.on('connect')
-
connection是connect的别名。我想他可能需要在绑定到io服务器后调用listen()来启动服务器。 -
听起来你明白了
-
stackoverflow.com/users/209067/pablo 我改了但是什么也没发生