如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在通过WiFi热点连接的另一台设备上加载笔记本电脑的localhost网站?相关的知识,希望对你有一定的参考价值。
我想将传感器数据从一个设备(带有传感器和wifi热点)传输到通过WiFi热点连接到传感器设备的其他设备。为此,我想托管一个在传感器设备上侦听端口80的本地主机网站,然后仅在其他设备上打开该站点(通过传感器设备设置的WiFi热点),但是当我尝试通过输入URL来尝试此操作时:http://192.168.1.110 ,我得到无法访问此站点 http://192.168.1.110/无法访问。如何访问其他设备上的本地主机网页?。
但是,(为什么?)当设备连接到我家的WiFi路由器时,这可以很好地工作。这是图像(这是它的外观):
这是我正在运行的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网站?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过局域网内的另一台电脑(windows Server2012)访问互联网