GET /socket.io/?EIO=3&transport=polling&t=NZFvwqb 404 149
GET /socket.io/?EIO=3&transport=polling&t=NZFvwqb 404 149
当我尝试实施 socket.io
来计算活跃用户时出现上述异常,我尝试了所有解决方案但对我没有任何作用。
服务器:
const express = require("express");
const app = express();
const cors = require("cors");
const socketIo = require('socket.io');
const http = require('http');
//Enable CORS policy
app.use(cors());
app.options("*", cors());
//socket io
const server = http.createServer(app);
const io = socketIo(server, {
cors: {
origins: ["http://localhost:4200", "http://localhost:3000"],
methods: ["GET", "POST"],
credentials: false
}
});
var count = 0;
io.on('connection', (socket) => {
console.log("Client connected");
if (socket.handshake.headers.origin === "http://localhost:3000") {
count++;
socket.broadcast.emit('count', count);
socket.on('disconnect', () => {
count--;
socket.broadcast.emit('count', count);
});
}
});
//Server
app.listen(8080, () => {
console.log("Server is running on port 8080");
});
改变这个:
app.listen(8080, () => {
console.log("Server is running on port 8080");
});
为此:
server.listen(8080, () => {
console.log("Server is running on port 8080");
});
您遇到此问题是因为您在初始化时传递的实例 socket
和您正在收听的实例不同。
更多请参考:
当我尝试实施 socket.io
来计算活跃用户时出现上述异常,我尝试了所有解决方案但对我没有任何作用。
服务器:
const express = require("express");
const app = express();
const cors = require("cors");
const socketIo = require('socket.io');
const http = require('http');
//Enable CORS policy
app.use(cors());
app.options("*", cors());
//socket io
const server = http.createServer(app);
const io = socketIo(server, {
cors: {
origins: ["http://localhost:4200", "http://localhost:3000"],
methods: ["GET", "POST"],
credentials: false
}
});
var count = 0;
io.on('connection', (socket) => {
console.log("Client connected");
if (socket.handshake.headers.origin === "http://localhost:3000") {
count++;
socket.broadcast.emit('count', count);
socket.on('disconnect', () => {
count--;
socket.broadcast.emit('count', count);
});
}
});
//Server
app.listen(8080, () => {
console.log("Server is running on port 8080");
});
改变这个:
app.listen(8080, () => {
console.log("Server is running on port 8080");
});
为此:
server.listen(8080, () => {
console.log("Server is running on port 8080");
});
您遇到此问题是因为您在初始化时传递的实例 socket
和您正在收听的实例不同。
更多请参考: