Electronjs - узел удаленного доступа - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть базовая настройка в моем electron.js. тогда у меня есть js файл, который ссылается непосредственно на index.html:

app.js

  const http = require('http');
  var url = require('url');
  var fs = require('fs');
  const hostname = '127.0.0.1';
  const port = 3000;
  http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "example.html";
  fs.readFile(filename, function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(port, hostname,()=>{
    console.log(`Server running at http://${hostname}:${port}/`);
});

Пока что я могу получить доступ к example.html, перейдя на localhost:3000, используя тот же компьютер.

Но я хочу использовать другое устройство для подключения к этому example.html. Поэтому я подумал, что это должно быть прямо вперед. Во-первых, мне нужно выяснить local IP:

var os = require('os');
var addresses = [];
for (var k in interfaces) {
    for (var k2 in interfaces[k]) {
        var address = interfaces[k][k2];
        if (address.family === 'IPv4' && !address.internal) {
            addresses.push(address.address);
        }
    }
}
console.log(addresses);

Я получаю 192.168.0.200, то есть IP-адрес, который мой маршрутизатор Wi-Fi предоставляет моему компьютеру. Затем я пытаюсь получить доступ к example.html через браузер с URL 192.168.0.200:3000, браузер не может найти страницу.

Чего-то не хватает?

1 Ответ

0 голосов
/ 17 ноября 2018

Как оказалось, это довольно прямолинейно. Я просто должен заменить 127.0.0.1 на любой IP-маршрутизатор.

///get the ip from the router
var os = require('os');
var addresses = [];
for (var k in interfaces) {
    for (var k2 in interfaces[k]) {
        var address = interfaces[k][k2];
        if (address.family === 'IPv4' && !address.internal) {
            addresses.push(address.address);
        }
    }
}
console.log(addresses);///<-- addresses is an array

 const http = require('http');
  var url = require('url');
  var fs = require('fs');
  const hostname = addresses[0];///<-- first element of addresses
  const port = 3000;
  http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "example.html";
  fs.readFile(filename, function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(port, hostname,()=>{
    console.log(`Server running at http://${hostname}:${port}/`);
});

тогда вы можете сделать 192.168.0.200:3000/example.html с любого устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...