Обслуживание локального веб-сайта через 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