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
我正在尝试使用以下服务器端代码连接到 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