[英]GET http://MY_DOMAIN.com/socket.io?EIO=3&transport=polling&t=1449205340962-2 404 (Not found)
[英]GET http://localhost:8563/socket.io/?EIO=3&transport=polling&t=NEsUPis 404 (Not Found)
我花了几天时间试图弄清楚为什么这不起作用,但我没有从中得到任何结果。
我尝试了一些关于这个主题的其他答案,但似乎没有一个对我有用。
尝试过的答案:
如何解决 Socket.io 404(未找到)错误?
GET http://localhost:3000/socket.io/socket.io.js 404(未找到)
错误:http://localhost:3001/socket.io/ 404(未找到)
这是我的代码。 文件服务器.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);
});
文件访问.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>
文件 menu.js:
const socket = io.connect(window.location.origin);
function setup()
{
createCanvas(600, 400);
ellipse(100, 100, 50, 50);
}
function draw() {}
文件索引.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>
如代码所示,我正在尝试通过 socket.io 将 p5js 页面连接到我的节点服务器。
但是当我到达 index.html 页面时,我得到了这个错误:
GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=NEsXBrx 404(未找到)
请求创建@socket.io-1.4.5.js:1
请求@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
轮询.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
套接字.open @ socket.io-1.4.5.js:1
套接字@socket.io-1.4.5.js:1
套接字@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);
server
有值之前。 所以,你最终会这样做:
var io = require('socket.io').listen(undefined);
这可能会在默认端口上创建一个单独的 web 服务器,该端口不是您尝试连接的端口。
你需要执行这行代码:
var io = require('socket.io').listen(server);
AFTER server
已经有一个值。
请注意,如果let
使用const
并删除所有出现的var
,那么 Javascript 会适当地告诉您这是一个错误,因为您试图在变量声明之前使用它。 这在技术上对var
是合法的,但显然会导致这样的编程错误。 使用let
和const
而不是var
,您几乎不会轻易犯这种类型的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.