Che cosa potrebbe essere usato per ottenere dati dal server ad Android alla stessa velocità con cui raggiunge i server?

0

Qual è il modo migliore per ottenere dati dal server alla velocità con cui arriva ad esso? (Come un messaggio istantaneo o una semplice trasmissione, ad esempio).

Prima ho pensato di utilizzare il server web in miniatura in Android e ottenere richieste di post con dati. Tuttavia con questo approccio ho capito presto che avrò molti problemi con NAT e problemi simili.

In seguito ho pensato di mettere in comune il server manualmente da Android, ma mi sembra un approccio alquanto instabile, perché i dati sono a intervalli irregolari (come l'immagine con del testo).

Stavo pensando di usare qualcosa come webrtc o rtp per avere una connessione tra server, ma questi approcci sono alquanto complessi e semicompletati. Ho trovato pochissime informazioni su quelle sul funzionamento dei dati. Pensavo di essere riuscito a inserire il mio video di "esperimenti" e il trasferimento del suono, ho trovato pochissime informazioni su come ottenere i trasferimenti di dati.

Cosa dovrei fare? Ora sto pensando di avere qualche connessione al server e ottenere alcuni eventi in Android, che quando ho ricevuto l'aggiornamento nel server potrebbe scaricare tutto dal server.

Aggiornamento:

I miei dati sono immagine png canvas codificata64 html5 elaborata. Probabilmente aggiungerò alcuni dati di testo a BLOB. Viene generato sulla pagina Web e dovrebbe raggiungere il telefono il più velocemente possibile attraverso il server. Il problema è parte in cui i dati dell'immagine passano da un server all'altro. La dimensione dei dati per richiesta è ~ 50 KB.

    
posta IBr 14.03.2014 - 10:19
fonte

2 risposte

1

Non sono abbastanza sicuro dello scenario che stai tentando di descrivere, ma sarebbe utile un modello secondario di un pub? Pubblica messaggi su un argomento e chiedi a chiunque sia interessato a tali informazioni di iscriversi allo stesso argomento. MQTT è un protocollo pub / sub messaging leggero che ha solo 2 byte di intestazione e quindi è veloce. Ci sono diversi client e server disponibili, alcuni che sono open source o liberi di usare per es. Eclipse Paho client e Mosquito server.

    
risposta data 14.03.2014 - 12:01
fonte
0

A seconda del dispositivo che stai utilizzando, avrai difficoltà. Android ha un paio di problemi nella progettazione del suo sottosistema di rete che causerà dolore.

Il problema principale è la gestione dell'alimentazione. I dispositivi Android sono, di norma, dispositivi mobili alimentati a batteria per la maggior parte del tempo. Pertanto, risparmiano il più possibile il potere, mettendo la CPU in modo aggressivo quando non è stata bloccata in stato di veglia. In molti dispositivi Android, questo fa sì che il dispositivo smetta di ricevere pacchetti su qualsiasi rete wireless a cui possa essere connesso. Questo rende un protocollo push over wireless quasi inutile: per farlo funzionare devi mantenere la CPU sveglia, il che ucciderà la batteria abbastanza rapidamente.

Potresti pensare di poterlo risolvere non utilizzando la rete wireless ma collegandoti al tuo server oltre 3g, ma questo non funziona. Android preferisce automaticamente wireless oltre 3g quando è connesso e l'unica API che consente di utilizzare 3g di preferenza è utilizzabile solo per connessioni di breve durata perché ha un timeout limitato a un breve periodo (30s, iirc).

Ora, se puoi limitare il tuo dispositivo target a uno che supporta wake-on-wlan, forse puoi farlo funzionare, ma lo troverai difficile.

    
risposta data 13.04.2014 - 19:35
fonte

Leggi altre domande sui tag