Pregunta

Estoy tratando de implementar un servidor Cometd/Bayeux en Android usando IJetty. La implementación del embarcadero en sí funciona bien sirviendo páginas estáticas junto con servlets. Estoy tratando de subir un poco la apuesta y crear una aplicación Bayeux en el teléfono, pero tengo algunos problemas. Puedo presionar la página que tiene los scripts de Dojo Cometd, pero no puedo suscribirme al canal. Cuando veo herramientas de desarrollador de Firebug/Chome, veo una serie de publicaciones/obtengo ese último milisegundos (~ 14). Sin embargo, cuando ejecuto una aplicación CometD en una máquina normal, las publicaciones/obtienen los últimos segundos (~ 14 segundos) antes de tiempo y reabrir la conexión. Este segundo escenario tiene sentido para mí con mi comprensión de cómo funciona la continuación en HTTP. Así que estoy pensando que algo no permite que esas conexiones cuelguen abiertas y devuelvan prematuramente un valor y, en consecuencia, cierren la conexión. Publicaría mi fuente, pero no estoy seguro de qué publicar, no publicar todo ... (es de código abierto, así que si quieres echar un vistazo, está en http://webtext-android.googlecode.com).

Entonces, mi pregunta es, ¿alguien piensa que podría haber alguna limitación subyacente impuesta por el sistema de Android que impide que estos servlets funcionen? ¿Hay suposiciones hechas por la implementación de Jetty Bayeux con respecto al sistema subyacente? ¿O es más probable que de alguna manera tenga una mala implementación de la continuación CometDdservelt? Debo tener en cuenta que todas las publicaciones/obtenidas de los mensajes de Ok de Ok de Ok de Ok, de devolución del cliente, por lo que no estoy inclinado a pensar que el sistema Android simplemente está terminando la conexión.

Sé que esto está un poco fuera de la pared y definitivamente estoy tratando de hacer algo un poco fuera de lo común, pero cualquier sugerencia o consejo sería muy apreciado.

Gracias,

Chris

¿Fue útil?

Solución

En caso de que alguien descubra esto y tenga problemas similares (esto se aplica a todas las implementaciones de Cometd, independientemente del host), descubrí que el problema era usar la biblioteca Google JS. Por alguna razón, los scripts de dojo que estaba cargando desde Google (1.4) no tenían una implementación válida de Cometd. Cambié mi script de dojo al ejemplo de Jetty -1.6.23 y funciona perfectamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top