Подтвердить что ты не робот

SocketIO ERR_CONNECTION_REFUSED

Я начинаю использовать NodeJS и Socket.IO. Я пытаюсь настроить базовый пример с HTTP-сервером NodeJS и установить соединение Socket.IO с сервером.

Я также использую angular JS, и в основном то, что я хочу, это то, что когда пользователь нажимает кнопку, устанавливается соединение с сервером. Однако, когда я пытаюсь, я получаю эту ошибку

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

Вот мой код:

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

    };

});

И в моем файле test.html:

<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>

Я думаю, что ошибка может быть связана с тем, что я использую при включении socket.io.js. Я также попытался использовать непосредственно localhost: 8080 в пути, потому что я читал, что это может быть решение, но это не так Работа. Поэтому, пожалуйста, я ценю любую помощь. Спасибо!

4b9b3361

Ответ 1

Я столкнулся с такой же проблемой. Я не видел ERR_CONNECTION_REFUSED в [email protected]~0.9. Ошибка появилась после того, как я обновил socket.io до 1.3.

Я решил это, просто удалив URL-адрес из конструктора клиентской стороны:

Измените

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

Для

var socket = io();  

Как показано в уроке socket.io, http://socket.io/get-started/chat/

Ответ 2

Если ваш сервер прослушивает порт 8080, вам необходимо подключиться к этому порту.

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

И поскольку вы используете относительный путь, socket.io lib будет отлично обслуживаться.

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

Ответ 3

Оказывается, что socket.io был установлен в смешной папке, и поэтому он не был распознан или загружен. Я решил это, создав package.json и объявив там зависимости, чтобы, когда я устанавливаю npm, он устанавливает папку в нужном месте.

Также Бен Фортун был прав, и я также изменил это... Надеюсь, это поможет другим людям, потому что я изо всех сил пытался понять это:)

Ответ 4

Я обращался к IP-интерфейсу своего облачного сервера, чтобы поболтать. внезапно Сервер был опущен. Затем я получил эту ошибку опроса. Наконец, я понял, что проблема связана с этим сервером. Убедитесь, что ваш сервер занят.

Я изменил IP-адрес на ноль. пожалуйста, укажите адрес вашего сервера

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