POST http://localhost:3000/socket.io/?EIO=3&transport=polling&t=NQUneY3 ejs 和 nodejs 中的 400(错误请求)

POST http://localhost:3000/socket.io/?EIO=3&transport=polling&t=NQUneY3 400 (Bad Request) in ejs and nodejs

我对此很陌生socket.io。

我有代码这是一个节点服务器代码:

var express = require("express");
var app = express();
var http = require("http").createServer(app);
var socketIO = require("socket.io")(http);
var socketID = "";

socketIO.on("connection", function (socket) {
  console.log("User is conneected ", socket.id);
  socketID = socket.id;
});

这里是 ejs 文件的代码:

......

<script src="/public/js/socket.io.js"></script>

<script>
......
var socketIO = io("http://localhost:3000");
......
</script>
...... 

而 socket.io.js 文件是 here:

我试过了,但没有任何效果。每当我刷新页面时都会弹出相同的错误。 我对此很陌生,我真的很想尽快解决它!!

socket.on:

之后我已经有了一个监听函数
http.listen(3000, function () {
  console.log("Server has started running!!");
  .........................
.............
})

下面的代码对我有用。

var express         = require('express');
var app             = express();
var server          = require('http').Server(app);
var io              = require('socket.io')(server);

io.sockets.on('connection', function (socket) {
        console.log(socket);
})

server.listen(3000, function(){
    console.log('listening on *:3000');
});

<script src="/socket.io/socket.io.js" > </script>

<script>
    $(function () {
        var socket = io.connect();
    });
</script>
您提到的

socket.io.js 与 https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js.. 中的相同。检查 package.json 中已安装的 serail io 版本,并将相同的版本放在此处的路径套接字中。io/2.2.0 它将工作