expressjs 如何在没有互联网的情况下通过蓝牙提供网站服务?

expressjs 如何在没有互联网的情况下通过蓝牙提供网站服务?

尝试制作一款适用于在没有互联网或 Wi-Fi 的地方(例如教堂地下室)开会的俱乐部的应用程序。

我找到了这个问题和答案,但没有找到希望https://stackoverflow.com/questions/10502645/serving-a-local-website-via-bluetooth-to-a-cellphone-without-using-the-internet因为从 2011 年开始最佳答案就已经是超高水平了。

然后我发现了 2014 年的这个 https://discussions.apple.com/thread/4308091

这部分工作正常:

您需要通过为蓝牙 PAN 分配一个手动分配的 IP 地址来使其工作。

192.168.2.1 子网 255.255.255.0,在路由器地址字段 192.168.2.1 中,提供 DNS 为 8.8.8.8 和第二个 DNS 8.8.4.4。当然,事先启用互联网共享。

我的 Mac 在 localhost:9190 上提供服务,并且我能够访问http://macname.local:9190我的网站,macname当从蓝牙 PAN 到使用蓝牙 PAN 的计算机进行 Internet 共享时,它显示在我的“共享”系统设置中。

我为它能正常工作而感到高兴,但我不知道 DNS 位是做什么用的,因为我从来没有输入过这些数字。我手动做了什么让它工作?确保 IP 和路由器是同一个地址?我在笔记本电脑上测试了这一点,没有互联网(wifi 关闭)。真的只是想了解为什么/如何做到这一点

答案1

您说您想在没有互联网的情况下为网站提供服务,但随后您开始谈论 DNS 并显示公共 DNS 服务器。这应该不相关。您在那里看到的数字可能是您设备的默认值。

BT PAN 是一种“个人区域网络”,它使用 BT 接口,就像任何其他网络接口一样。蓝牙是一种无线网络协议。BT 是一种点对点连接,因此您一次只能与另一个设备通信。BT 连接位于第 2 层。您需要在该连接之上配置 TCP\IP(第 3 层)。然后您就可以托管 HTTP(第 7 层)。

在您的场景中,手机使用您的应用连接到手机,没有 DHCP 服务器,也没有 DNS 服务器。这意味着两端的 IP 地址需要静态定义、不同且位于同一子网中。这可能比从您的应用动态配置听起来更困难。直接通过 IP 进行通信是最简单的,但如果您想使用主机名,则不必依赖 DNS:您可以使用 Bonjour 或 NETBIOS。

相关内容