Клиент Socket.io не может подключиться к серверу - PullRequest
0 голосов
/ 21 мая 2018

У меня есть проблема, связанная с подключением Socket.io к серверу.Он отлично работает на моем локальном компьютере, но на dev-сервере он не может подключиться.Мой бэкэнд-код выглядит следующим образом:

    var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');

server.listen(8080);

console.log('CONNECTED');
io.on('connection', function (socket) {
    var handshake = socket.handshake;
    console.log(handshake);
    console.log("new client connected");

    var redisClient = redis.createClient();

    redisClient.subscribe('notification');
    redisClient.subscribe('rate');

    redisClient.on("message", function(channel, message) {
        console.log("New message: " + message + ". In channel: " + channel);
        socket.emit(channel, message);
    });

    socket.on('disconnect', function() {
        redisClient.quit();
    });

});

А моя клиентская часть выглядит так:

 var socket = io.connect('http://localhost:8080');
 socket.on('notification', function (data) { console.log(data) }

Ошибка, с которой я сталкиваюсь, это когда клиент socket.io пытается отправить на URL "http://localhost:8080/socket.io/?EIO=3&transport=polling&t=MD_W4lE" запрос и его сбой с ошибкой ERR_CONNECTION_REFUSED. Сервер узла работает, я протестировал, а также попытался изменить localhost на 127.0.0.1 и адрес ipv4, я не помог.

1 Ответ

0 голосов
/ 21 мая 2018

Я думаю, что это происходит из-за того, что вы не открыли порт сервера узла публично.

Вы можете выполнить следующий шаг, чтобы открыть порт в экземпляре ec2.

  • Перейти к "Сеть и безопасность "-> Настройки группы безопасности в левой навигационной панели
  • Найдите группу безопасности, к которой относится ваш экземпляр. Нажмите на правила для входящих подключений
  • Используйте раскрывающийся список и добавьте HTTP (порт 3000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...