Обслуживание локального веб-сайта через Bluetooth на мобильный телефон без использования Интернета

Я пытаюсь запустить локальный компьютер через bluetooth на мобильном телефоне, ipad и других беспроводных устройствах.

Мы хотели бы иметь возможность запускать сайт, размещенный локально на этом сервере, без подключения к Интернету, возможно ли запустить сайт с помощью Bluetooth с сервера на беспроводные устройства.

Возможно, сервер не подключен к Интернету, поэтому я хотел бы знать, можно ли локально запускать сайт на мобильном телефоне через браузер мобильного телефона, без подключения к Интернету сервера.

Я ценю любую помощь в этом.

Ответ 1

Да, некоторыми способами, такими как:

  • Используйте Bluetooth-модем назад - т.е. телефон считает, что компьютер является источником сетевого подключения. На компьютере работает не только веб-сервер, но и сервер имен (или у телефона есть файл hosts), так что имя веб-сайта разрешается на IP-адрес компьютера в сети Bluetooth. Обратите внимание, что для телефона, вероятно, потребуется доступ на уровне администратора или существующие возможности для этого.

  • Рассматривайте bluetooth больше как последовательное соединение. Напишите службу, которая работает по телефону и принимает сетевые подключения из браузера на телефоне через сетевой интерфейс loopback. Затем он отправляет HTTP-запрос по последовательному соединению bluetooth на ПК, где веб-сервер, такой как программа, принимает их и отвечает на последовательный канал. Затем служба на телефоне возвращает их в браузер через сетевой интерфейс loopback. Если вы довольны URL-адресом, например http://localhost:8080, это не потребует административного доступа к устройству, а просто возможность запуска фоновой службы, которая может прослушивать в сети Розетки. Но чтобы избавиться от: 8080 и запустить на неявный обычный порт 80, по крайней мере на Android, вам нужен root-доступ.

  • Оберните движок браузера телефона в приложении, которое заменяет последовательный доступ через Bluetooth вместо сетевых сокетов. В качестве альтернативы, развертывайте идею обслуживания выше этого пути внутри настраиваемого приложения-браузера, так что вам фактически не нужно запускать фоновый пакет, а только поток фоновой службы в приложении, которое пользователь активно использует.

  • Купите домашний Wi-Fi-маршрутизатор и не подключайте его к порту WAN. Получите достаточно памяти для установки дистрибутива router-linux, и вы даже сможете разместить веб-сайт на этом поле и оставить его вне компьютера. Да, это не решение Bluetooth, просто бросая его там для простоты, если есть способ, которым это может быть приемлемым.

Ответ 2

Используйте малиновый Pi с установленной ОС Linux Raspbian. Настройте свой любимый веб-сервер на Pi (Nginx). Настройте Pi как точку доступа WiFi, на которой запущен hostapd, в соответствии с этим: https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software

Это даст вам действительно хороший, недорогой маломощный веб-сервер, который транслирует свой собственный SSID WiFi для подключения всех ваших устройств.

Я использовал это для достижения того, что вам нужно.

Ответ 3

Если вы разрабатываете веб-приложение, к которому вы обращаетесь через localhost (т.е. angular, express и т.д.) и хотите получить доступ к нему на мобильном устройстве, один из вариантов - обратный трос вашего устройства, чтобы ваш планшет/телефон получал доступ через Интернет через ваш компьютер через Bluetooth PAN.

Как только ваше устройство подключено, вам нужно будет найти IP-адрес вашего компьютера в сети с хостингом (bluetooth). Чтобы найти это, откройте приложение терминала и введите 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-адрес вашего компьютера в netwrk bluetooth (192.168.2.1 в этом случае), откройте браузер вашего мобильного устройства и загрузите http://192.168.2.1:1234/, где "1234" будет заменен на порт, который прослушивает ваш сервер ( т.е. 4200 для angular и т.д.).

Специальное примечание для AngularJS: по умолчанию команда ng serve прослушивает только "localhost: 4200", которая недоступна другим устройствам в вашей сети. Для angular вам нужно запустить сервер с указанным узлом так: ng serve -host 0.0.0.0