socket.io显示polling-xhr.js:268 POST http:// localhost:3000 / socket.io /?EIO = 3&transport = polling&t = ND_oTrA 404(未找到)

时间:2020-07-24 07:54:35

标签: node.js sockets socket.io

我正面临socket.io连接问题。我知道这个问题已经被问过很多次了。我也从这些问题中尝试了解决方案,但是没有一个解决方案对我有用。

这是我的代码:

const express = require('express');
var app = express();
var server = app.listen(8000, () => console.log('3000 is the port'));
var io = require('socket.io').listen(server);

const users = {};

io.on('connection', socket => {
  console.log('connection ')
    if (!users[socket.id]) {
        users[socket.id] = socket.id;
    }
    socket.emit("yourID", socket.id);
    io.sockets.emit("allUsers", users);
    socket.on('disconnect', () => {
        delete users[socket.id];
    })

    socket.on("callUser", (data) => {
        io.to(data.userToCall).emit('hey', {signal: data.signalData, from: data.from});
    })

    socket.on("acceptCall", (data) => {
        io.to(data.to).emit('callAccepted', data.signal);
    })
});

我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

您的服务器正在8000端口上运行,但是您记录到它正在3000上运行。因此,请尝试使用localhost:8000连接网址进行连接。

您还可以将服务器更改为在端口3000而不是8000上运行。

const PORT=3000;
const server = app.listen(PORT, () => console.log(`${PORT} is the port`));