2012-05-08 11 views
11

Sto provando a eseguire un computer locale tramite bluetooth su un cellulare, un ipad e altri dispositivi wireless.Servizio di un sito Web locale via bluetooth a un telefono cellulare senza utilizzare Internet

Ci piacerebbe essere in grado di eseguire un sito Web ospitato localmente su questo server senza che sia connesso a Internet, è possibile eseguire il sito tramite bluetooth dal server ai dispositivi wireless.

Il server potrebbe non essere connesso a Internet, quindi mi piacerebbe sapere se è possibile eseguire il sito localmente, su un cellulare tramite il browser cellulare, senza che il server sia connesso a Internet.

Apprezzo qualsiasi aiuto con questo.

risposta

8

Sì, in qualche modo, come:

  • utilizzare Bluetooth tethering a ritroso - vale a dire, il telefono pensa che il computer è la sua fonte di connettività di rete. Il computer esegue non solo il server Web, ma anche un server dei nomi (o il telefono ha un file host) in modo che il nome del sito Web venga risolto all'indirizzo IP del computer sulla rete Bluetooth. Si noti che il telefono richiederà probabilmente l'accesso a livello di amministratore o la capacità esistente per questo.

  • Trattare il bluetooth più come una connessione seriale. Scrivi un servizio che funziona sul telefono e accetta le connessioni di rete dal browser sul telefono tramite l'interfaccia di rete loopback. Ciò invia quindi la richiesta http sul collegamento seriale bluetooth al PC, dove un programma come server Web li accetta e risponde sul canale di tipo seriale. Il servizio sul telefono fornisce quindi questi al browser attraverso l'interfaccia di rete di loopback. Se ti accontenti di un url come http://localhost:8080, questo non richiederebbe l'accesso amministrativo al dispositivo, ma solo la possibilità di eseguire un servizio in background che può ascoltare su socket di rete. Ma per sbarazzarsi di: 8080 ed eseguire l'implicita porta usuale 80, almeno su Android è necessario l'accesso come root.

  • Avvolgere il motore del browser del telefono in un'applicazione che sostituisce l'accesso di tipo seriale sul bluetooth al posto delle prese di rete. In alternativa, distribuire l'idea di servizio in questo modo all'interno di un'applicazione browser personalizzata, in modo che non sia effettivamente necessario eseguire un pacchetto in background, ma solo un thread di servizio in background all'interno dell'applicazione che l'utente sta utilizzando attivamente.

  • Acquistare un router wifi domestico e non collegare la porta WAN a qualsiasi cosa. Prendi uno con abbastanza memoria per installare una distribuzione router-linux e potresti persino essere in grado di ospitare il sito web su quella casella e lasciare il PC fuori da esso. Sì, questa non è una soluzione bluetooth, basta lanciarla lì per la semplicità se c'è un modo in cui potrebbe essere accettabile.

+0

Grazie Chris, la prima opzione con il tethering bluetooth all'indietro, conosci una risorsa che potrei usare per ottenerlo? Se no apprezzo l'aiuto che mi hai dato. – Vesone

+0

Ci scusiamo, non ho specifiche - e dipenderà molto dal tuo dispositivo e PC O/S. Se il sistema operativo mobile in questione viene utilizzato anche su modelli di tablet senza radio di rete mobile, è possibile cercare qualsiasi supporto per collegarli a un telefono tramite Bluetooth, quindi provare a prendere in prestito tale metodo e utilizzarlo con il telefono che riproduce il client ruolo invece del tablet e del PC che riproducono il ruolo del provider al posto del telefono. Personalmente la mia preferenza sarebbe la scatola wifi seguita dal servizio di traduzione tcp-to-bluetooth del dispositivo, in ordine decrescente di semplicità. –

+0

Sembra buono, grazie mille Chris. Darò uno scatto. Apprezzo molto l'aiuto. – Vesone

2

Utilizzare un Raspberry Pi con il sistema operativo Linux Raspbian installato. Configura il tuo server web preferito sul Pi (Nginx). Configura il Pi come un punto di accesso WiFi eseguendo hostapd in base a questo: https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software

Questo ti darà un piccolo server web veramente bello, economico, a bassa potenza che trasmette il proprio SSID WiFi per connettere tutti i tuoi dispositivi a .

Ho usato questo per ottenere quello che cerchi.

+0

Sì, è necessario scegliere un dongle wifi con infrastruttura, ma in caso contrario si tratta della soluzione router-linux, solo su una piattaforma con meno risorse. –

0

Se si sviluppa un'app Web a cui si accede tramite localhost (ad es.angolare, espresso, ecc.) e desidera accedervi dal dispositivo mobile, un'opzione è quella di reverse tether il dispositivo in modo che il tablet/telefono acceda a Internet tramite il computer tramite Bluetooth PAN.

Una volta connesso il dispositivo, è necessario trovare l'indirizzo IP del computer sulla rete ospitata (bluetooth). Per trovare, aprire l'app del terminale e digitare ifconfig e cercare l'indirizzo inet nella configurazione bridge100, ad es. nella fila avanti di questo ifconfig entrata:

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 

Una volta ottenuto l'indirizzo IP del computer sul netowrk bluetooth (192.168.2.1 in questo caso), aprire il browser e caricare del dispositivo mobile in cui `1234 è sostituito con la porta su cui il tuo server è in ascolto (ad es. 4200 per Angular, ecc.).

Nota speciale per AngularJS: per impostazione predefinita, il comando ng serve ascolta solo "localhost: 4200", che non è accessibile ad altri dispositivi sulla rete. Per Angular, dovrai avviare il tuo server con l'host specificato in questo modo: ng serve -host 0.0.0.0

Problemi correlati