2017-02-07 7 views
1

Ich habe einen Server eingerichtet, der node.js verwendet, und ich versuche, eine Verbindung zum Server mit socket.io herzustellen. Der Server hat vor 2 Monaten perfekt funktioniert, aber aus irgendeinem Grund funktioniert es nicht mehr. Der Server-Code sieht wie folgt aus:Socket.io-Client kann keine Verbindung zu localhost herstellen, während er eine Verbindung zu 127.0.0.1 herstellen kann.

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

Auf meiner Client-Seite, ich bin

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

zu versuchen, die Linie mit meinem Server zu verbinden, aber es funktioniert nicht. Die Verbindung funktioniert perfekt, wenn ich die Linie

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

verwenden, wenn ich localhost Typen: 3000 auf dem Browser, sendet er mich zur Seite sagt Hallo Welt, wie beabsichtigt, gleich wie 127.0.0.1, so dass es nicht funktioniert, nur wenn ich io.connect benutze.

Dinge, die ich habe versucht, sind:

  • die Host-Datei zu ändern (die Zeile 127.0.0.1 localhost das Hinzufügen, die Linie zu entfernen, einschließlich :: 1, eine neue Host-Datei zu machen und es zu überschreiben)
  • versuchen Sie es auf einer anderen Maschine, immer noch das gleiche Problem
  • Reset der Router-Einstellungen.
  • Pingen localhost auf einer cmd Aufforderung, heißt es Antwort von :: 1: Zeit < 1ms
  • andere Version von socket.io Installation und node.js (sowohl die jüngsten Zahlen und Versionen vor 2 Monaten)

In Anbetracht dessen, was von Webbrowser passiert, scheint localhost zu funktionieren, aber es funktioniert nur nicht, wenn ich socket.io damit verwende. Ich war nicht in der Lage, dieses Problem, das plötzlich auftauchte, zu lösen, also würde ich es sehr schätzen, wenn mir jemand Einblick geben könnte, was das verursacht.

+0

Betrachtet man den gleichen Code verwendet vor perfekt 2 Monate zu arbeiten, ich denke, der Code nicht ein Problem, aber etwas, das mit meinen Computer- oder Interneteinstellungen zusammenhängt. Ich habe auch versucht, ipconfig/flushdns und/registerdns, aber es hat nicht geholfen. Wenn man bedenkt, dass localhost: 3000 auf der Webseite gut funktioniert, ist das kein Problem in der Host-Datei ... – Kyangi

Antwort

0

Es scheint wie ein IPv4/IPv6-Problem. Sie können versuchen, diese zu ändern:

server.listen(3000, '0.0.0.0'); 

dazu:

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

oder dieses:

server.listen(3000); 
+0

Wenn ich das tue, sieht es so aus, als ob mein Client weder 127.0.0.1 noch localhost mit dem Server verbinden kann. – Kyangi

Verwandte Themen