Node.js + Apache - https://localhost:3000/socket.io/ ERR_CONNECTION_REFUSED - PullRequest
0 голосов
/ 27 февраля 2019

Я реализую простую игру в Node.js.У меня есть client.js для моего клиентского кода и server.js на удаленном сервере, которые используют сокеты для связи через порт 3000

Я также использую Apache на порт 80 и использование ProxyPass в моем файле конфигурации Apache для маршрутизации URL mywebsite.io/agario на мой сервер nodejs.

<Location /agario>
     ProxyPass http://localhost:3000/
     ProxyPassReverse http://localhost:3000/
</Location>

Я также использую cloudflare для маршрутизации моего веб-сервера 167.179.xx.xx через URL https://agario.mywebsite.io для SSL, чтобы я мог использовать HTTPS.

Проблема

Когда я пытаюсьподключиться к моему сайту https://agario.mywebsite.io/agario Я получаю следующую ошибку:

socket.io-1.4.5.js:1 GET https://localhost:3000/socket.io/?EIO=3&transport=polling&t=MakAMgZ net::ERR_CONNECTION_REFUSED

Мне неясно, почему мой клиентский код пытается подключиться к localhost, когда я указалв коде для подключения к удаленному серверу.Потенциально я просто запутался в том, как запустить сервер node.js, так как это мой первый вкус Node.js и сокетов.

client.js

...
var socket;
socket = io.connect('https://agario.mywebsite.io/agario');
...

server.js

var app = express();
var server = app.listen(3000, listen);

// This call back just tells us that the server has started
function listen() {
  var host = server.address().address;
  var port = server.address().port;
  console.log('Example app listening at http://' + host + ':' + port);
}

app.use(express.static('public'));
var io = require('socket.io')(server);

io.sockets.on('connection',
  function(socket) {
    console.log("We have a new client: " + socket.id);

...

});

Если я пропустил важную информацию, пожалуйста, дайте мне знать, и я обновлю свой вопрос, спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

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

socket.connect('https://ip:3000');

Однако, если вы уверены, что ваш клиент используеттот же порт, что и у сервера, или у вас есть переадресация портов, затем попробуйте использовать netcat, просто чтобы убедиться, что проблема в вашем скрипте, а не в конфигурации сети:

nc -zv -w1 ip port

...