如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?相关的知识,希望对你有一定的参考价值。

我想将传感器数据从一个设备(带有传感器和wifi热点)传输到通过WiFi热点连接到传感器设备的其他设备。为此,我想托管一个在传感器设备上侦听端口80的本地主机网站,然后仅在其他设备上打开该站点(通过传感器设备设置的WiFi热点),但是当我尝试通过输入URL来尝试此操作时:http://192.168.1.110 ,我得到无法访问此站点 http://192.168.1.110/无法访问。unreachable如何访问其他设备上的本地主机网页?

但是,(为什么?)当设备连接到我家的WiFi路由器时,这可以很好地工作。这是图像(这是它的外观):broadcast_demo

这是我正在运行的node.js文件index.js:

const app = require("express")();
const http = require('http').Server(app);
const io = require('socket.io')(http);

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
});

var clients = 0;
io.on('connection', function(socket) {
   clients++;
   socket.emit('newclientconnect',{ description: 'Hey, welcome!'});
   socket.broadcast.emit('newclientconnect',{ description: clients + ' clients connected!'})
   socket.on('disconnect', function () {
      clients--;
      socket.broadcast.emit('newclientconnect',{ description: clients + ' clients connected!'})
   });
});

port = 80
http.listen(port, () => {
    console.log("listening to port",port)
})

这是html文件index.html:

<html>
    <head>
        <title>
            broadcasting_demo
        </title>
    </head>
    <script src = "/socket.io/socket.io.js"></script>
    <script>
        var socket = io();
        socket.on('newclientconnect', (data) => {
            document.body.innerHTML = '';
            document.write(data.description);
            document.write("<h1><br>Hello world, this site works<br> on other devices<br> if you're connected to my home wifi!</h1>")
        });
    </script>
    <script></script>
    <body>
        <h1>this is a demo</h1>
    </body>
</html>
答案

当您使用家庭无线网络时,传感器的ipaddr为192.168.1.110,因此您可以通过网络访问它,

但是当您连接到传感器的热点时,它将具有其他一些可访问它的公共ipaddr,因此您需要使用该ip来代替

要知道您可以简单地使用节点库public-ip

npm install public-ip

然后是>>

    const publicIp = require('public-ip');
(async () => {
    console.log(await publicIp.v4());
    //=> '46.5.21.123'
})

现在您应该可以通过传感器的热点http://46.5.21.123访问该网站

另一答案

您的IOT设备是否正在运行DHCP服务器?

以上是关于如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?的主要内容,如果未能解决你的问题,请参考以下文章

如何从其他设备访问 XAMPP 服务器?

如何通过局域网内的另一台电脑(windows Server2012)访问互联网

Android:如何检查设备是不是通过 WiFi - Direct 连接到另一台设备?

如何在android中找到另一台设备的wifi信号方向?

笔记本设置wifi热点为啥找不到命令这是怎么回事?

设置Wifi热点,提示“无法启动承载网络”怎么办