2017-02-07 4 views
1

У меня есть сервер, настроенный с использованием node.js, и я пытаюсь подключиться к серверу с socket.io. Сервер работал отлично 2 месяца назад, но по какой-то причине он больше не работает. Серверный код выглядит следующим образом:Клиент Socket.io не может подключиться к localhost, пока он может подключиться к 127.0.0.1

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"); 

Если я печатаю локальный: 3000 в браузере, он посылает меня на страницу, говоря Hello World, как задумано, так же, как 127.0.0.1, поэтому он не работает только когда я использую io.connect.

Вещи, которые я попытался это:

  • изменения файла хоста (добавление строки 127.0.0.1 Localhost, удалив строку, включая :: 1, что делает новый хост-файл и перезаписать его)
  • пробуя его на другой машине, по-прежнему та же проблема
  • сброс настроек маршрутизатора.
  • пинг Localhost на CMD строки, он говорит ответ от :: 1: время < 1мса
  • установки другой версии Socket.io и Node.js (как самые последние из них и версии 2 месяца назад)

Учитывая, что происходит с веб-браузером, похоже, что работает localhost, но он не работает, когда я использую socket.io с ним. Я не смог решить эту проблему, которая внезапно появилась, поэтому я был бы очень признателен, если кто-то может дать мне некоторые сведения о том, что может быть причиной этого.

+0

Учитывая тот же код, используемый для работы отлично 2 месяца назад, я думаю, что код не является проблема, связанная с настройками моего компьютера или Интернета. Я также пробовал ipconfig/flushdns и/registerdns, но это не помогло. Учитывая, что на веб-странице, localhost: 3000 работает нормально, это не проблема в файле хоста ... – Kyangi

ответ

0

Это похоже на проблему с IPv4/IPv6. Вы можете попробовать это изменить:

server.listen(3000, '0.0.0.0'); 

к этому:

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

или это:

server.listen(3000); 
+0

Когда я это делаю, похоже, что мой клиент не может подключиться к серверу с 127.0.0.1 или с localhost. – Kyangi

Смежные вопросы