webentwicklung-frage-antwort-db.com.de

SocketIO ERR_CONNECTION_REFUSED

Ich fange an, NodeJS und Socket.IO zu verwenden. Ich versuche, ein grundlegendes Beispiel mit einem NodeJS-HTTP-Server einzurichten und eine Socket.IO-Verbindung zum Server herzustellen. 

Ich verwende auch angle JS und im Grunde möchte ich, dass, wenn ein Benutzer eine Taste drückt, die Verbindung zum Server hergestellt wird. Wenn ich es jedoch versuche, erhalte ich diese Fehlermeldung 

GET http://localhost/socket.io/?EIO=2&transport=polling&t=1404288173776-3 net::ERR_CONNECTION_REFUSED

Hier ist mein Code:

server.js

var http = require('http');
var server= http.createServer(handler);
var io = require('socket.io')(server);

server.listen(8080);

function handler(req, res) {
    res.writeHead(200);
    res.end('Hello Http');
}

io.on('connection', function (socket){
    socket.emit('news', { hello: 'world' });
    console.log('connected!');
});

app.js

var app = angular.module('testApp', ['ngRoute']);

app.controller('TestCtrl', function ($scope){

    $scope.msg= "";

    $scope.try = function (){

        $scope.msg= "ALO"

        var socket = io('http://localhost');

        socket.on('news', function (data) {
            console.log(data);
        });

    };

});

Und in meiner test.html-Datei:

<body ng-controller="TestCtrl">

    <h2>{{msg}}</h2>
    <button ng-click="try()">Try</button>

    <script src="../js/angular.min.js"></script>
    <script src="../js/angular-route.min.js"></script>
    <script src="../js/app.js"></script>

    <script src="../node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>

<!-- <script src="/socket.io/socket.io.js"></script> -->

</body>

Ich denke, dass der Fehler möglicherweise etwas mit dem Pfad zu tun hatte, den ich verwende, wenn ich die socket.io.js-Datei verwende. Ich habe auch versucht, localhost: 8080 direkt in den Pfad zu verwenden, weil ich gelesen habe, dass es eine Lösung sein könnte, die aber nicht funktionierte. Ich freue mich über jede Hilfe. Vielen Dank!

25
tampeta

Ich hatte genau das gleiche Problem. Ich habe die ERR_CONNECTION_REFUSED nicht in [email protected]~0.9 gesehen. Nach dem Upgrade von socket.io auf 1.3 wurde der Fehler angezeigt.

Ich habe es gelöst, indem ich einfach die URL aus dem clientseitigen Konstruktor entfernt habe:

Veränderung 

var socket = io('http://localhost');

Zu

var socket = io();  

Wie das Tutorial von socket.io gezeigt hat: http://socket.io/get-started/chat/

42
leon

Wenn Ihr Server Port 8080 überwacht, müssen Sie eine Verbindung zu diesem Port herstellen. 

var socket = io('http://localhost:8080');

Und da Sie einen relativen Pfad verwenden, wird die socket.io-lib gut bedient.

<script src="/socket.io/socket.io.js"></script>
13
Ben Fortune

Es stellt sich heraus, dass das socket.io in einem lustigen Ordner installiert wurde und daher nicht erkannt oder geladen wurde. Ich habe dieses Problem gelöst, indem ich eine package.json erstellt und die Abhängigkeiten dort deklariert habe, so dass bei der Installation von npm der Ordner an der richtigen Stelle installiert wird.

Auch Ben Fortune hatte recht und ich habe das auch modifiziert ... Ich hoffe, das hilft anderen Leuten, weil ich mich VIEL dafür gekämpft habe, das herauszufinden :)

3
tampeta

Ich habe auf die IP meines Cloud-Servers zugegriffen, um zu chatten. Plötzlich war der Server außer Betrieb. Dann bekam ich diesen Abruffehler. Schließlich habe ich herausgefunden, dass das Problem bei diesem Server liegt. Vergewissern Sie sich, dass Ihr Server aktiv ist.

Ich habe die IP-Adresse auf Null geändert. Bitte nehmen Sie Ihre Serveradresse an

socket = io.connect('0.0.0.0:8110');
0