Esiste un modo per stabilire una connessione diretta tra 2 dispositivi mobili su Internet?

7

Nella società in cui lavoro abbiamo le nostre app iOS \ Android \ WP che consentono ai nostri dipendenti di condividere un certo tipo di file tra loro. Questa app funziona attraverso il nostro server, ma recentemente abbiamo riscontrato una situazione in cui alcuni dei nostri dipendenti devono raggiungersi l'un l'altro, sono persino nello stesso edificio, ma non possono a causa di una connessione limitata a Internet al di fuori del paese. Installare un server in questo paese è fuori questione, quindi ora stiamo cercando una soluzione alternativa.

C'è un modo per fare in modo che due dispositivi mobili con l'app si colleghino direttamente tra loro per scambiare informazioni? L'uso di e-mail o di qualsiasi altra comunicazione comune è fuori questione dal momento che i file inviati da un'app all'altra dovevano essere elaborati e visualizzati in un modo molto specifico (sono le specifiche tecniche complesse) più la politica della nostra azienda vieta severamente l'uso di un terzo server di partito per lo scambio di informazioni.

Il problema che stiamo affrontando è che poiché entrambi i dispositivi stanno semplicemente utilizzando un ISP mobile locale è impossibile stabilire una connessione TCP diretta perché entrambi i dispositivi non hanno un indirizzo IP esterno che potrebbe essere utilizzato per raggiungere questo dispositivo. Quindi, per quanto possiamo dire, provare a connettere 2 dispositivi direttamente su Internet è una causa persa. Siamo corretti in questa ipotesi? Forse stiamo trascurando alcune possibilità per raggiungere il nostro obiettivo?

Apprezzerò qualsiasi idea.

    
posta user3223738 16.04.2015 - 13:46
fonte

4 risposte

1

Puoi collegare entrambi i dispositivi mobili alla stessa rete WiFi?

Le app mobili possono aprire le porte e creare connessioni di rete, e puoi utilizzare questa funzionalità per far sì che le app comunichino direttamente tra loro.

Ci sono una serie di difficoltà pratiche, tra cui come trovare l'indirizzo IP dell'altro dispositivo e come autenticare le connessioni. Mi aspetto che la tua app richieda cambiamenti significativi; se è progettato per funzionare client / server, passare al peer-to-peer può essere un grande cambiamento.

Devi utilizzare le app mobili? Se si trattava di un'app per Windows che ha appena aperto un file, sarebbe facile trasferire tale file utilizzando una chiavetta USB, una copia diretta, ecc.

    
risposta data 16.04.2015 - 14:30
fonte
1

Forse potresti voler dare un'occhiata a DHT:

link

È un software peer-to-peer come BitTorrent, Freenet, RetroShare o Tox.

    
risposta data 16.04.2015 - 16:21
fonte
0

Non sono sicuro che questa sia una risposta realistica perché è un po 'pesante.

Se non ti puoi fidare delle reti a cui sono collegati gli utenti, puoi sempre farli tornare su una rete su cui puoi fare affidamento.

Quindi, ad esempio, se i tuoi utenti si trovano in un paese che limita l'accesso al tuo server aziendale, fai in modo che il tuo client mobile fallback l'utilizzo di Tor .

Puoi configurare Tor per utilizzare solo i nodi di uscita nel Paese del tuo server aziendale, assicurandoti un accesso senza impedimenti.

    
risposta data 16.04.2015 - 14:24
fonte
0

Simile alla risposta di paj28 , ma se entrambi i dispositivi mobili possono utilizzare il WiFi, allora c'è una soluzione facile.

  1. Chiedi a entrambi i dispositivi di connettersi al tuo server tramite WiFi (sembra che siano comunque in grado di farlo, quindi suppongo che questo non costituirà un problema)

  2. Chiedi al server di registrare le informazioni di connessione (nome, indirizzo IP)

  3. Passa tutte le informazioni di connessione a tutti i client collegati

  4. I client connessi ora dispongono di informazioni sufficienti per connettersi direttamente tra loro senza che il server stia mediando la connessione e rimane all'interno della LAN dell'edificio.

In questa situazione si abilitano le connessioni peer-to-peer, ma si evita il brutto affare di trovare coetanei. Il server registra le informazioni necessarie affinché i peer si connettano tra loro e puoi inviare tali informazioni periodicamente o richiedere che i client eseguano il polling di tali informazioni dal server, in modo che si diffondano solo su richiesta.

    
risposta data 16.04.2015 - 17:38
fonte

Leggi altre domande sui tag