Node.js, движок чата на основе socket-io работает нормально на LOCAL, но не работает при работе на разных ноутбуках с использованием ngrok - PullRequest
0 голосов
/ 19 февраля 2020

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

var socket = io('http://localhost:7777', {
    query: {
        username: '<%= user %>'
      }
  });

Может кто-нибудь подсказать мне, как сделать эту публикацию c? Потому что IP-адрес меняется каждый раз при подключении к inte rnet.

и

var app = express();

const chatServer = require('http').createServer(app);

chatServer.listen(7777);

Я работаю в node.js впервые

1 Ответ

0 голосов
/ 19 февраля 2020

Если ваш сервер и клиент работают локально, как вы упомянули, у вас есть некоторые дополнительные проблемы при запуске сервера и клиента на разных компьютерах через inte rnet:

  • Ваш клиент должен знать внешний IP-адрес сервера. Поэтому вам нужен какой-то способ сделать его настраиваемым на клиенте, например, используя аргументы командной строки.
  • Если локальный IP-адрес вашего сервера изменяется, вам необходимо настроить его на использование статического c IP-адреса вместо использования DHCP.
  • Возможно, вам потребуется настроить переадресацию портов на вашем маршрутизаторе inte rnet на стороне сервера. Вы должны указать маршрутизатору пересылать весь трафик c через порт 7777. На ваш сервер.
  • Возможно, вам потребуется настроить брандмауэр, чтобы разрешить трафик c через порт 7777.
  • Ваш Интернет-провайдер может и будет иногда менять ваш внешний IP-адрес. Не так много вы можете сделать с этим. Именно поэтому к серверам на inte rnet обычно обращаются, используя их (доменное) имя, которое является stati c.
...