Socket.io 客户端未连接到服务器

Socket.io client is not connecting to the server

我正在尝试使用以下服务器端代码连接到 socket.io 客户端...

const express = require("express");
const { createServer } = require("HTTP");
const { Server } = require("socket.io");

const app = express();

const httpServer = createServer(app);
const io = new Server(httpServer);

io.on("connection", (socket) => {
   console.log("New user connected");
   socket.on("join_room", (room) => {
     socket.join(room);
     socket.on("message", (msg) => {
        io.to(room).emit("update_msg", msg);
     });
   });
});

const PORT = process.env.PORT || 5000;
httpServer.listen(PORT, () => {
   console.log(`Server has started on port number ${PORT}`);
});

我的客户端代码如下

const socket = io("http://localhost:5000");
socket.emit("join_room", "Room1");

当我 运行 上面的代码时,它不会在控制台中打印任何内容。我在服务器端和客户端分别使用 socket.io 和 socket.io-客户端版本 4.5.0。

const express = require("express");
const { createServer } = require("http");
const { Server } = require("socket.io");
const cors = require('cors')

const app = express();

app.use(cors())
const httpServer = createServer(app);
const io = new Server(httpServer, { cors: {
    origin: "http://localhost:4200",
    methods: ["GET", "POST"]
}});

io.on("connection", (socket) => {
  console.log("New user connected");
  socket.on("join_room", (room) => {
    socket.join(room);
    socket.on("message", (msg) => {
      io.to(room).emit("update_msg", msg);
    });
  });
});

const PORT = process.env.PORT || 5001;
httpServer.listen(PORT, () => {
  console.log(`Server has started on port number ${PORT}`);
});

希望上面的代码能正常工作。 请确认,是否启用了 CORS?,如果您尝试从不同来源访问。

供您参考,我在创建 HTTP 服务器时添加了 CORS

参考:https://socket.io/docs/v3/handling-cors/