Domanda

Sto cercando di implementare un server Cometd/Bayeux su Android usando Ijetty. L'implementazione del molo stesso funziona perfettamente a servire pagine statiche insieme a servlet. Sto cercando di aumentare un po 'l'ante e creare un'applicazione Bayeux al telefono ma ho qualche problema. Posso colpire la pagina che ha gli script Dojo Cometd, ma non riesco a iscrivermi al canale. Quando vedo strumenti per sviluppatori Firebug/Chome, vedo una serie di post/ottiene l'ultimo un paio di millisecondi (~ 14). Tuttavia, quando eseguo un'applicazione cometd su una macchina normale, i post/ottengono duramente diversi secondi (~ 14 secondi) prima di scadere e riapertura della connessione. Questo secondo scenario ha senso per me con la mia comprensione di come funziona la continuazione in HTTP. Quindi sto pensando che qualcosa non stia permettendo a quelle connessioni di aprire e restituire prematuramente un valore e di conseguenza chiudendo la connessione. Pubblicherei la mia fonte ma non sono sicuro di cosa pubblicare a corto di pubblicare tutto ... (è open source anche se se vuoi dare un'occhiata è a http://webtext-android.googlecode.com).

Quindi la mia domanda è: qualcuno pensa che potrebbero esserci alcune limitazioni sottostanti imposte dal sistema Android che impedisce a questi servizi di lavorare? Ci sono ipotesi che vengono fatte dall'implementazione del jetty Bayeux per quanto riguarda il sistema sottostante? O è più probabile che in qualche modo abbia una cattiva implementazione del ContinuationComEtdservelt? Dovrei notare che tutti i post/ottengono dai messaggi di restituzione del client 200 OK, quindi non sono propenso a pensare che il sistema Android stia semplicemente interrompendo la connessione.

So che questo è un po 'fuori dal muro e sto sicuramente cercando di fare qualcosa di un po' fuori dall'ordinario, ma qualsiasi suggerimento o consiglio sarebbe molto apprezzato.

Grazie,

Chris

È stato utile?

Soluzione

Nel caso in cui qualcuno lo scopra e abbia problemi simili (questo vale per tutte le implementazioni Cometd indipendentemente dall'host), ho scoperto che il problema era con l'utilizzo della libreria di Google JS. Per qualche motivo, gli script Dojo che stavo caricando da Google (1.4) non avevano una valida implementazione di COMETD. Ho cambiato il mio script Dojo in quello che è stato usato dall'esempio Jetty-1.6.23 e funziona perfettamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top