Как запустить NodeJs SocketIO на сервере (Centos 7) - PullRequest
0 голосов
/ 28 февраля 2020

Я создаю приложение с nodejs сокетом io. Это работает четко на локальном хосте (порт: 3000). Но когда я разверну его на своем сервере, я смогу запустить свое приложение на порту 3000, но на клиентском тайм-ауте. Как я могу решить это?

var fs = require('fs');

var https = require('https');
var options = {
  key: fs.readFileSync('ssl.my-key.key'),
  cert: fs.readFileSync('ssl.my-cert.crt')
};
var server = https.createServer(options);
var io  = require('socket.io').listen(server);
var port = 3000;

const database = require('./Database');

io.on('connection', (socket) => {

  socket.on('message', async (msg) => {
    // I do some action here.
  });

  socket.on('disconnect', (msg) => {
    // some action in here too
  });

});

server.listen(port, () => {
  console.log('listening on *:' + port);
});

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

позвольте нам отладить ваше node js приложение. 1) добавьте несколько журналов соединения с базой данных, http.createserver, также там, где вы должны проверить, если не удалось, тогда поймайте исключение

2) вам нужно открыть порт на centOs перед запуском node js app

3) вы должны проверить себя с доменным именем или IP-адресом

, так как вы комментируете, что у вас истекло время ожидания соединения, вы имеете в виду node js сервер пытается подключиться к порту 3000, но узел не может подключиться и выдает ошибку с таймаутом соединения

, также отправьте ваш пример кода вашего основного индексного файла, чтобы мы могли исследовать вашу проблему, спасибо.

1 голос
/ 28 февраля 2020

Похоже, ваша проблема связана с переадресацией портов. Для того, чтобы ваш сервер был общедоступным, все порты должны быть перенаправлены соответствующим образом. Локально и на маршрутизаторе.

Проверьте эту ссылку, чтобы узнать больше о том, как перенести порт на linux: https://linuxacademy.com/guide/11630-internal-port-forwarding-on-linux-using-the-firewall/

И это, чтобы узнать больше о маршрутизаторе переадресация портов, но это будет зависеть от вашего роутера.

https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/

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

Подробнее о heroku и NodeJS: https://linuxacademy.com/guide/11630-internal-port-forwarding-on-linux-using-the-firewall/

...