问题 通过蓝牙服务本地网站到手机而不使用互联网


我正试图通过手机,ipad和其他无线设备上的蓝牙运行本地计算机。

我们希望能够在没有连接到互联网的情况下运行本地托管在此服务器上的网站,是否可以通过蓝牙从服务器到无线设备运行该网站。

服务器可能没有连接到互联网,所以我想知道是否可以通过手机浏览器在手机上本地运行网站,而无需将服务器连接到互联网。

我很感激任何帮助。


9313
2018-05-08 16:33


起源



答案:


是的,通过某种方式,例如:

  • 向后使用蓝牙网络共享 - 即手机认为计算机是网络连接的来源。计算机不仅运行Web服务器,还运行名称服务器(或手机具有主机文件),以便网站名称解析为蓝牙网络上计算机的IP地址。请注意,手机可能需要管理员级别访问权限或现有功能。

  • 将蓝牙更像是串行连接。编写一个在手机上运行的服务,并通过环回网络接口接受来自手机浏览器的网络连接。然后,它通过蓝牙串行链路将http请求发送到PC,其中类似于Web服务器的程序接受它们并通过类似串行的通道进行响应。然后,电话上的服务通过环回网络接口将这些服务提供给浏览器。如果您满足于诸如此类的网址 HTTP://本地主机:8080 这不需要对设备进行管理访问,而只需要运行可以侦听网络套接字的后台服务。但要摆脱:8080并在隐含的通常端口80上运行,至少在Android上你需要root访问权限。

  • 将手机的浏览器引擎包裹在一个应用程序中,该应用程序用蓝牙代替网络套接字替代类似串行的访问。或者,在自定义浏览器应用程序内部以这种方式部署服务理念,这样您实际上不必运行后台程序包,而只需要在用户正在使用的应用程序中运行后台服务线程。

  • 购买家庭wifi路由器,不要将它的WAN端口连接到任何东西。获得一个有足够内存来安装路由器 - Linux发行版,你甚至可以在该框上托管该网站,并让PC脱离它。是的,这不是一个蓝牙解决方案,如果有一种可以接受的方式,只是为了简单而折腾它。


8
2018-05-08 16:56



谢谢Chris,这是第一个使用向后蓝牙网络共享的选项,你知道我可以用来实现这个目标的资源吗?如果不是,我感谢你已经给我的帮助。 - Vesone
对不起,没有具体信息 - 这将取决于您的设备和PC操作系统。如果有问题的移动操作系统也用于没有自己的移动网络无线电的平板电脑型号,您可以考虑通过蓝牙将它们连接到手机的任何支持,然后尝试借用该方法并将其与手机播放客户端一起使用角色而不是平板电脑和PC扮演提供者角色而不是电话。就个人而言,我的偏好是wifi盒子,接着是设备tcp-to-bluetooth翻译服务,按简单顺序递减。 - Chris Stratton
听起来不错,非常感谢克里斯。我会试一试。我非常感谢你的帮助。 - Vesone
@ChrisStratton,关于你的最后一颗子弹,注意这些路由器中的许多都有一个USB端口,你可以在其中插入一个蓝牙加密狗。我这样做了,可以确认它工作正常。甚至可以插入多个蓝牙适配器并提供大量手机。 - Tom
@Tom听起来像我正在尝试做的,我们需要这个设备进行贸易展,我们将有iphone,Android手机,ipads等。你有多种设置你有多种设置? - Vesone


答案:


是的,通过某种方式,例如:

  • 向后使用蓝牙网络共享 - 即手机认为计算机是网络连接的来源。计算机不仅运行Web服务器,还运行名称服务器(或手机具有主机文件),以便网站名称解析为蓝牙网络上计算机的IP地址。请注意,手机可能需要管理员级别访问权限或现有功能。

  • 将蓝牙更像是串行连接。编写一个在手机上运行的服务,并通过环回网络接口接受来自手机浏览器的网络连接。然后,它通过蓝牙串行链路将http请求发送到PC,其中类似于Web服务器的程序接受它们并通过类似串行的通道进行响应。然后,电话上的服务通过环回网络接口将这些服务提供给浏览器。如果您满足于诸如此类的网址 HTTP://本地主机:8080 这不需要对设备进行管理访问,而只需要运行可以侦听网络套接字的后台服务。但要摆脱:8080并在隐含的通常端口80上运行,至少在Android上你需要root访问权限。

  • 将手机的浏览器引擎包裹在一个应用程序中,该应用程序用蓝牙代替网络套接字替代类似串行的访问。或者,在自定义浏览器应用程序内部以这种方式部署服务理念,这样您实际上不必运行后台程序包,而只需要在用户正在使用的应用程序中运行后台服务线程。

  • 购买家庭wifi路由器,不要将它的WAN端口连接到任何东西。获得一个有足够内存来安装路由器 - Linux发行版,你甚至可以在该框上托管该网站,并让PC脱离它。是的,这不是一个蓝牙解决方案,如果有一种可以接受的方式,只是为了简单而折腾它。


8
2018-05-08 16:56



谢谢Chris,这是第一个使用向后蓝牙网络共享的选项,你知道我可以用来实现这个目标的资源吗?如果不是,我感谢你已经给我的帮助。 - Vesone
对不起,没有具体信息 - 这将取决于您的设备和PC操作系统。如果有问题的移动操作系统也用于没有自己的移动网络无线电的平板电脑型号,您可以考虑通过蓝牙将它们连接到手机的任何支持,然后尝试借用该方法并将其与手机播放客户端一起使用角色而不是平板电脑和PC扮演提供者角色而不是电话。就个人而言,我的偏好是wifi盒子,接着是设备tcp-to-bluetooth翻译服务,按简单顺序递减。 - Chris Stratton
听起来不错,非常感谢克里斯。我会试一试。我非常感谢你的帮助。 - Vesone
@ChrisStratton,关于你的最后一颗子弹,注意这些路由器中的许多都有一个USB端口,你可以在其中插入一个蓝牙加密狗。我这样做了,可以确认它工作正常。甚至可以插入多个蓝牙适配器并提供大量手机。 - Tom
@Tom听起来像我正在尝试做的,我们需要这个设备进行贸易展,我们将有iphone,Android手机,ipads等。你有多种设置你有多种设置? - Vesone


使用安装了Raspbian Linux OS的Raspberry Pi。在Pi(Nginx)上配置您喜欢的Web服务器。根据以下内容将Pi配置为运行hostapd的WiFi接入点: https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software

这将为您提供一个非常好,便宜,低功耗的小型Web服务器,它可以为您连接所有设备来广播自己的WiFi SSID。

我用它来实现你的目标。


3
2018-04-29 16:00



是的 - 你需要选择一个支持基础设施的wifi加密狗,否则这就像路由器 - linux解决方案一样,只能在资源较少的平台上使用。 - Chris Stratton


如果您正在开发通过localhost访问的Web应用程序(即angular,express等)并想要在您的mobil设备上访问它,一个选项是 反向系绳 您的设备,以便您的平板电脑/手机通过蓝牙PAN通过您的计算机访问互联网。

连接设备后,您需要在设备上找到计算机的IP地址 托管(蓝牙)网络。要查找,请打开终端应用程序,然后键入 ifconfig,并搜索 inet 地址在 bridge100 配置,例如在第四排 ifconfig 进入:

bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=3<RXCSUM,TXCSUM>
    ether f6:0f:24:22:ea:64
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    inet6 fe80::f04f:2f4f:ef22:ae64%bridge100 prefixlen 64 scopeid 0x10
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en6 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 15 priority 0 path cost 0
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active

在蓝牙网络上获得计算机的IP地址后(192.168.2.1 在这种情况下),打开您的移动设备的浏览器并加载 http://192.168.2.1:1234/ 其中`1234被服务器正在侦听的端口替换(即Angular的4200等)。

AngularJS的特别说明:默认情况下, ng serve 命令仅侦听“localhost:4200”,这是网络上其他设备无法访问的。对于Angular,您需要使用如下指定的主机启动服务器: ng serve -host 0.0.0.0


0
2018-03-25 22:36



是否有可能做你用树莓写的东西?我的意思是,覆盆子上的web服务器/ web服务,bt连接,通过浏览器的Android设备或连接到该Web服务的应用程序 - andymnc
@andymnc,很棒的问题,但我在几年内还没有开发出覆盆子。如果你找到了解决方案,我会对答案感兴趣! - Jthorpe