Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 得到http://localhost:8563/socket.io/?EIO=3&运输=投票及;t=NEsUPis 404(未找到)_Javascript_Node.js_Sockets_Socket.io_P5.js - Fatal编程技术网

Javascript 得到http://localhost:8563/socket.io/?EIO=3&运输=投票及;t=NEsUPis 404(未找到)

Javascript 得到http://localhost:8563/socket.io/?EIO=3&运输=投票及;t=NEsUPis 404(未找到),javascript,node.js,sockets,socket.io,p5.js,Javascript,Node.js,Sockets,Socket.io,P5.js,我花了好几天的时间试图弄明白这为什么不起作用,但我没有从中得到任何东西。 关于这个话题,我尝试了一些其他的答案,但似乎都不适合我。 尝试的答案: 这是我的密码。 文件服务器.js: //Dependencies var express = require('express'); var io = require('socket.io').listen(server); //Dependencies //Global variables var app = express(); va

我花了好几天的时间试图弄明白这为什么不起作用,但我没有从中得到任何东西。
关于这个话题,我尝试了一些其他的答案,但似乎都不适合我。
尝试的答案:

这是我的密码。 文件服务器.js:

//Dependencies
var express = require('express');
var io = require('socket.io').listen(server);
//Dependencies

//Global variables
var app = express();
var PORT = 3000;
const ROOT = {root : __dirname};
var players = [];
//Global variables

var server = app.listen(PORT, function() {
    console.log("Server process started successfully on port " + PORT + "\n");
});

app.get('/', function(req, res) {
    console.log("Server called from " + req.socket.remoteAddress + ":" + req.socket.remotePort + "\n");
    res.sendFile('html/access.html', ROOT);
});

app.get('/gameSelection', function(req, res) {
    let name = req.query.name;
    players.push(name);
    console.log("New player named " + name + " joined the hub." + "\n");
    console.log("Total active players: " + players.length + "\n");
    console.log("Complete list of active players: " + players + "\n");
    res.sendFile('sketches/menu/index.html', ROOT);
});

app.use(express.static(__dirname + '/sketches/menu'));

io.sockets.on('connection', function(socket){
    console.log("We have a new client: " + socket.id);
});
文件access.html:

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome traveler</title>
    </head>
    <body>
        <form method="GET" action="/gameSelection">
            Name: <input type="text" name="name" placeholder="Insert your name..." required>
            <input type="submit" value="submit">
        </form>
    </body>
</html>
文件index.html:

<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <script language="javascript" type="text/javascript" src="libraries/p5.min.js"></script>
  <script language="javascript" type="text/javascript" src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
  <script language="javascript" type="text/javascript" src="menu.js"></script>

  <style> body { padding: 0; margin: 0; } </style>
</head>
<body>
</body>
</html>

正文{填充:0;边距:0;}
如代码所示,我正试图通过socket.io一个p5js页面连接到我的节点服务器。
但是,当我进入index.html页面时,会出现以下错误:

得到http://localhost:3000/socket.io/?EIO=3&transport=polling&t=NEsXBrx 404(未找到)
Request.create@socket.io-1.4.5.js:1
Request@socket.io-1.4.5.js:1
XHR.request@socket.io-1.4.5.js:1
XHR.doPoll@socket.io-1.4.5.js:1
Polling.poll@socket.io-1.4.5.js:1
Polling.doOpen@socket.io-1.4.5.js:1
Transport.open@socket.io-1.4.5.js:1
Socket.open@Socket.io-1.4.5.js:1
Socket@Socket.io-1.4.5.js:1
Socket@Socket.io-1.4.5.js:1
Manager.open.Manager.connect@socket.io-1.4.5.js:2
(匿名)@socket.io-1.4.5.js:3

我真的无法理解我的代码出了什么问题,所以我希望有人能帮助我。

提前感谢。

您正在执行这行代码:

var io = require('socket.io').listen(server);
var io = require('socket.io').listen(server);
Before
服务器
有一个值。因此,你最终会这样做:

var io = require('socket.io').listen(undefined);
这可能会在默认端口上创建一个单独的web服务器,该端口不是您尝试连接的端口


您需要执行这行代码:

var io = require('socket.io').listen(server);
var io = require('socket.io').listen(server);
之后,服务器
已经有一个值


注意,如果您使用
const
let
并删除所有出现的
var
,Javascript会适当地告诉您这是一个错误,因为您试图在声明变量之前使用它。这在技术上对
var
是合法的,但显然会导致类似这样的编程错误。使用
let
const
而不是
var
,您几乎不会轻易犯这种错误。

您正在执行这一行代码:

var io = require('socket.io').listen(server);
var io = require('socket.io').listen(server);
Before
服务器
有一个值。因此,你最终会这样做:

var io = require('socket.io').listen(undefined);
这可能会在默认端口上创建一个单独的web服务器,该端口不是您尝试连接的端口


您需要执行这行代码:

var io = require('socket.io').listen(server);
var io = require('socket.io').listen(server);
之后,服务器
已经有一个值


注意,如果您使用
const
let
并删除所有出现的
var
,Javascript会适当地告诉您这是一个错误,因为您试图在声明变量之前使用它。这在技术上对
var
是合法的,但显然会导致类似这样的编程错误。使用
let
const
而不是
var
,你几乎不会犯这种错误。

你从来没有在你的Express应用程序上设置过
“端口”
设置。@Take Some Bytes app.listen()为我的Express应用程序设置端口吗?不,它没有。无论如何,在应用程序开始侦听之前,您正在创建
套接字.IO
服务器,因此端口将
未定义
。您从未在Express应用程序上设置
“端口”
设置。@Take Some Bytes app.listen()是否为我的Express应用程序设置端口?不,它没有。无论如何,在应用程序开始侦听之前,您正在创建
Socket.IO
服务器,因此端口将
未定义
。谢谢,解决了我的问题。非常愚蠢的错误谢谢你,解决了我的问题。非常愚蠢的错误啊哈