我使用node.js设置了服务器,我正在尝试使用socket.io连接到服务器。服务器曾经在2个月前完美地工作但由于某种原因它不再起作用了。服务器代码如下所示:
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时它才能正常工作。
我尝试过的事情是:
考虑到从web浏览器发生的事情,localhost似乎可以正常工作,但只有当我使用socket.io时它才能工作。我一直无法解决突然出现的这个问题,所以如果有人能给我一些可能导致这个问题的见解,我会非常感激。
答案 0 :(得分:0)
这似乎是IPv4 / IPv6问题。您可以尝试更改此内容:
server.listen(3000, '0.0.0.0');
到此:
server.listen(3000, '::1');
或者这个:
server.listen(3000);