我有一个使用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时才无法工作。
我尝试过以下几点:
更改主机文件(添加行127.0.0.1 localhost,删除包括::1的行,创建一个新的主机文件并覆盖它);
在另一台机器上尝试,仍然存在同样的问题;
重置路由器设置;
在cmd提示符下ping本地主机,它说回复来自::1:时间<1ms;
安装不同版本的socket.io和node.js(最近的版本和两个月前的版本)。
考虑到从Web浏览器发生的情况,localhost似乎有效,但只有当我使用socket.io时才无法工作。我一直无法解决这个突然出现的问题,所以如果有人能给我一些关于可能导致此问题的见解,我将不胜感激。