ERR_CONNECTION_REFUSED http://localhost:3000/socket.io/socket.io.js
Ciao, ich bin die Implementierung eines webRTC viele-zu-viele-Videokonferenz-system, eigentlich, das hab ich bereits gemacht, ich bin mit Buchse.IO, die als melde-server, und alles geht super gut, ich bin mit EnterpriseDB Apache für die meinem .html-Datei auf dem port (8081) und Node.js zum servieren Buchse.IO-port (3000), Es funktioniert wie Charme in localhost, keine Fehler, Mein PROBLEM ist das dienen für den externen Zugriff mit meiner öffentlichen IP ist, ich Teste mit meinen Freunden und diese browsing-Dienste: www.browserstack.com und www.browserling.com (trial-Versionen).
-
mit www.browserstack.com alles funktioniert gut mit entweder 42 mozilla oder chrome 47
-
mit www.browserling.com ich habe diese Fehler
Firefox 41: ReferenceError: io nicht definiert
Chrom 45: Failed to load resource
http://localhost:3000/socket.io/socket.io.js
net::ERR_CONNECTION_REFUSED
Uncaught ReferenceError: io nicht definiert -
mit meinen Freunden, ich habe die gleichen Probleme wie www.browserling.com aber Sie sind mit den neuesten Versionen der browser (Chrome 47 und Firefox 42) für die Verbindung zu meinem PC-server.
Ich denke, dies ist nicht eine browser-version Problem, Das Problem ist auf die Betreuung der socket.io.js Datei, schließlich, hier ist mein code:
Es zeigt nur die wichtigen Dinge, um dieses problem zu lösen:
///NODE.JS DIRECTORY
////////////////////serverside.js
var port = 3000;
var io = require('socket.io').listen(port);
io.sockets.on('connection', function (socket){.........}
///APACHE DIRECTORY
////////////////////clientside.js
//Connect to signalling server
var socket = io.connect("http://localhost:3000");
////////////////////avq.html
<!DOCTYPE html>
<html lang="es">
<head><meta charset="UTF-8">
</head>
<body>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script src="js/clientside.js"></script>
</body>
</html>
dies ist meine server-URL, wenn jemand versuchen will:
http://201.209.104.33:8081/webrtcexamples/avq.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
localhost
ist ein spezielles host-name, die Punkte auf demselben computer wie der man es anfordert. So jemand mit einem anderen computer als der ihrige und versuchen, eine Verbindung zulocalhost
wird versuchen, eine Verbindung zu Ihrem eigenen Rechner, nicht deins. Wie der server läuft nicht auf Ihrem computer, die Sie ganz offensichtlich ein "connection refused" - Fehlermeldung.Müssen Sie ersetzen
localhost
mit einer weltweit erreichbaren Adresse (domain-name oder IP-Adresse). Dies bedeutet auch, dass Sie müssen Ihre router-Karte Ihre externe IP-Adresse Ihrem computer, auf dem server für diesen Anschluss (sonst werden Sie eine Verbindung zu Ihrem router, nicht dein server).localhost
ist definitiv immer einen Verweis auf die aktuellen lokalen computer, wie gesehen, wer ist mit dieser Adresse. Niemand kann eine Verbindung zu Ihrem computer überlocalhost
.versuchen
io.connect("http://201.209.104.33:3000");
stattio.connect("http://localhost:3000");
BEARBEITEN
Starten Sie den socket auf dem server, dass es verwendet wird. Also, wenn Sie führen Sie es auf Ihrem PC, Ihrem pc Freunde werden es nicht sehen, weil, wenn es eine Verbindung zu
localhost
ist, wird es versuchen, eine Verbindung zu denlocalhost
von IHREM pc. Nicht deins.Ich hatte das gleiche Problem vor. Sie ausführen müssen, schalten Sie den server so, dass jeder eine Verbindung herstellen können.