Как использовать сетевой IP вместо localhost с nodejs без экспресса? - PullRequest
0 голосов
/ 27 апреля 2018

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

Итак, я раньше использовал express, и это сработало:
var app = express();
var serv = app.listen(8081, "127.0.0.1");
Выше сервер использует localhost (127.0.0.1), но его можно изменить на любой IP-адрес, который я хочу. И слушает порт 8081.

Проблема в том, что я больше не использую экспресс, только Nodejs. Я обрабатываю запрос, отвечаю и обрабатываю "вручную". Я немного исследовал документацию экспресса здесь:
http://expressjs.com/es/4x/api.html#app.use
Но, честно говоря, я не понял, как работает эта функция.


Это мой server.js:

// Import the necessary modules var http = require('http');

// Server object server = {};

// Start the http server server.httpServer = http.createServer(function(req, res){ /* Stuff */ }

// Start the server server.httpServer.listen(8081, function(){ console.log('The server is listening on port 8081'); });

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Прежде всего вам не хватает закрывающей скобки

server.httpServer = http.createServer(function(req, res){
/* Stuff */
});

Сервер узла будет работать на этом компьютере с использованием localhost. Затем другие машины могут связаться с сервером, используя имя хоста или локальный частный IP-адрес (если он находится в той же сети). Вы можете получить свой частный IP-адрес, запустив команду ipconfig или ifconfig, в зависимости от вашей системы.

Если вы хотите подключиться к нему из-за пределов сети, вам нужно будет открыть определенный порт (8081), чтобы он был доступен через Интернет. Затем вы можете подключиться к вашему внешнему IP-адресу (вы можете увидеть по адресу ipchicken.com ). Возможно, у вас нет статического IP-адреса, поэтому вы можете либо получить его, либо использовать что-то вроде noip.com . Также вы можете получить доступ к нему через доменное имя, если вы его зарегистрируете.

0 голосов
/ 27 апреля 2018

Я не уверен в том, что вы пытаетесь сделать, но, как я понимаю, вы пытаетесь подключиться к вашему Node-серверу с внешнего IP-адреса.

Вы не можете делать такие вещи просто так. Вам нужен либо сервер с общедоступным IP-адресом, на котором вы запускаете сервер Node, либо вы запускаете сервер Node в пределах локального IP-адреса.

Если вы хотите публично представить свой локальный хост, одним из простых решений может быть использование таких инструментов, как ngrok . Но, пожалуйста, имейте в виду, что это не считается безопасным и / или лучшей практикой.

...