Il browser Web incluso nel sistema operativo Android non supporta WebSocket, un protocollo che mantiene connessioni continue tra server Web e client Web o browser. Pertanto, se la tua azienda intende progettare siti web compatibili con Android che richiedono connessioni persistenti piuttosto che asincrone, hai bisogno di un’alternativa a WebSocket, di cui esistono pochi, e la loro implementazione è gratuita. Implementazioni di programmazione come BOSH, Google Application Programming Interface e Comet offrono tutte metodi di connessione continua.
Nozioni di base su WebSocket
Per sviluppare utilizzando alternative ai WebSocket, è utile sapere cosa sono. A differenza dello sviluppo “Web 2.0”, che tradizionalmente era incentrato sulla comunicazione asincrona tra browser client e server, WebSocket mantiene una connessione aperta tra i due. La comunicazione asincrona richiede un “polling” o controllo costante da parte del browser dell’utente. Ciò significa che il browser dovrebbe chiedere al server se nuove informazioni erano presenti in un documento senza saperlo in anticipo. I WebSocket eliminano questo problema, mantenendo un contatto costante tra browser e server. Qualsiasi alternativa dovrebbe ottenere la stessa cosa.
BOSH
Poiché il browser Android nativo non supporta WebSocket, è necessario implementare un altro framework. I flussi bidirezionali su HTTP sincrono offre una di queste alternative. BOSH imita l’implementazione di una linea di comunicazione TCP continua. In BOSH, il server non risponde alle richieste del browser finché non dispone effettivamente di dati da inviare. Inoltre, il server non accetta una connessione client per i dati fino a quando non viene stabilita una seconda connessione HTTP dopo la richiesta. Ciò significa che le connessioni immediate avvengono solo quando i dati pertinenti alla pagina visualizzata sono presenti o inviati, riducendo la larghezza di banda e il rallentamento e aumentando la velocità di caricamento della pagina Web.
API del canale Google
L’API di Google Channel mantiene una connessione aperta tra i server di Google e le pagine e le applicazioni di Google. Utilizzando un client JavaScript per implementare l’API, la pagina o l’applicazione può creare una connessione sicura ai server di Google, su cui i server di Google possono inviare un flusso costante di dati senza ripetuti polling. Ciò consente l’aggiornamento in tempo reale, che può rivelarsi estremamente vantaggioso per le pagine e le app che eseguono giochi testa a testa. Ciò è utile se prevedi di sviluppare applicazioni conformi a Google.
Comet e AJAX
Mentre gli esempi precedenti mostrano come le connessioni sincrone vengono mantenute attraverso metodi diversi, lo stile di connessione Comet – con AJAX – tenta, all’interno di un framework aperto, di mantenere l’uso del polling asincrono. Comet cerca di mitigare i problemi con il polling dei client, inclusi i costi della larghezza di banda e il rallentamento, fornendo standard in base ai quali i server possono inviare dati senza essere stati interrogati. Comet, tuttavia, introduce problemi di implementazione, in quanto i browser non utilizzano le parti integranti della tecnologia, come la codifica e la gestione delle richieste, allo stesso modo.