gpt4 book ai didi

node.js - Socket.io 客户端无法连接到 localhost,但可以连接到 127.0.0.1

转载 作者:行者123 更新时间:2023-12-02 11:16:12 24 4
gpt4 key购买 nike

我有一个使用node.js 设置的服务器,我正在尝试使用socket.io 连接到该服务器。服务器两个月前运行良好,但由于某种原因不再运行。服务器代码如下所示:

var http = require('http');
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});

var io = require('socket.io')(server);

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

console.log ('Server started.');
server.listen(3000, '0.0.0.0');

在我的客户端,我正在使用该线路

socket = io.connect("http://localhost:3000");

尝试连接到我的服务器,但不起作用。如果我使用这条线,连接效果很好

socket = io.connect("http://127.0.0.1:3000");

如果我在浏览器上输入 localhost:3000,它会将我发送到按预期显示 Hello World 的页面,与 127.0.0.1 相同,因此仅当我使用 io.connect 时它才不起作用。

我尝试过的事情是:

  • 更改主机文件(添加行 127.0.0.1 localhost,删除包含::1 的行,创建新的主机文件并覆盖它)
  • 在不同的机器上尝试,仍然是同样的问题
  • 重置路由器设置。
  • 在 cmd 提示符下 ping localhost,它显示回复来自::1: time<1ms
  • 安装不同版本的socket.io和node.js(最新版本和2个月前的版本)

考虑到网络浏览器发生的情况,localhost似乎可以工作,但只有当我使用socket.io时它才不起作用。我一直无法解决突然出现的这个问题,所以如果有人能给我一些关于导致此问题的原因的见解,我将不胜感激。

最佳答案

这似乎是 IPv4/IPv6 问题。您可以尝试更改此设置:

server.listen(3000, '0.0.0.0');

对此:

server.listen(3000, '::1');

或者这个:

server.listen(3000);

关于node.js - Socket.io 客户端无法连接到 localhost,但可以连接到 127.0.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com