GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404(未找到)
Posted
技术标签:
【中文标题】GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404(未找到)【英文标题】:GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404 (Not Found) 【发布时间】:2019-03-19 20:55:34 【问题描述】:我正在基于 nodejs 中的 websocket 创建一个服务器作为后端,离子 4 应用程序作为前端,当我尝试连接到我的服务器时出现此错误
GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404 (Not Found)
这是我的服务器代码
const PORT = 8080;
const WebSocket = require("ws").Server;
var express = require("express");
var app = express();
app.use(function(req, res, next)
res.header("Access-Control-Allow-Origin", "http://localhost:8100");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept"
);
res.header("Access-Control-Allow-Credentials", true);
next();
);
var http = require("http").createServer(app);
http.listen(PORT, "localhost", function()
console.log("listening in http://localhost:" + PORT);
);
const wss = new WebSocket( server: http );
wss.on("connection", function connection(ws)
ws.on("message", function incoming(message)
console.log("received: %s", message);
);
ws.send("I am server ^_^");
);
【问题讨论】:
你能发布你的前端代码吗?好像您在后端使用 websockets 协议,在前端使用 socket.io 谢谢,这是问题所在,但错误是什么意思? 请参考答案 【参考方案1】:为了将来的参考和您想要更多的说明,这是因为在后端使用 websockets 协议,在前端使用 socket.io 而不是普通的 WebSockets 客户端。
当socket.io想要连接到服务器时,upgrade请求被发送到http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404
这个路径。由于后端没有配置socket io服务器,显然express server发送404 not found
而不是升级响应。
【讨论】:
您好,当我们使用 S3 存储桶来托管我们的无服务器应用程序时,我们面临着类似的问题。正如您的回答所暗示的,socket io 还需要后端的服务器来进行完整的握手,有什么方法可以实现吗?以上是关于GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404(未找到)的主要内容,如果未能解决你的问题,请参考以下文章
GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=McNiz_D 404(未找到)
GET http://localhost:8080/WEB-INF/js/jquery-3.4.1.min.js net::ERR_ABORTED 404