Системные требования для использования Cometd / Bayeux на Android - PullRequest
3 голосов
/ 21 апреля 2010

Я пытаюсь реализовать сервер Cometd / Bayeux на Android с помощью iJetty. Сама реализация Jetty прекрасно работает, обслуживая статические страницы вместе с сервлетами. Я пытаюсь немного увеличить ставку и создать приложение Bayeux на телефоне, но у меня возникли некоторые проблемы. Я могу перейти на страницу, на которой есть сценарии dojo cometd, но я не могу подписаться на канал. Когда я просматриваю инструменты разработчика firebug / chome, я вижу серию сообщений / запросов, которые длятся пару миллисекунд (~ 14). Однако, когда я запускаю приложение cometd на обычном компьютере, сообщения / получаются последние несколько секунд (~ 14 секунд) до истечения времени ожидания и повторного открытия соединения. Этот второй сценарий имеет смысл для меня с моим пониманием того, как работает продолжение в HTTP. Поэтому я думаю, что что-то не позволяет этим соединениям оставаться открытыми и преждевременно возвращает значение и, следовательно, закрывает соединение. Я хотел бы опубликовать свой источник, но я не уверен, что писать, кроме публикации всего ... (хотя это с открытым исходным кодом, так что если вы хотите посмотреть это на http://webtext -android.googlecode.com ).

Итак, мой вопрос: кто-нибудь думает, что может быть какое-то основное ограничение, налагаемое системой Android, которая мешает работе этих сервлетов? Существуют ли предположения, сделанные реализацией Jetty Bayeux в отношении базовой системы? Или более вероятно, что каким-то образом у меня плохая реализация ContinuationCometdServelt? Я должен отметить, что все сообщения / сообщения от клиента возвращают 200 сообщений OK, поэтому я не склонен думать, что система Android просто прерывает соединение.

Я знаю, что это немного за пределами стены, и я определенно пытаюсь сделать что-то немного необычное, но любые предложения или советы будут с благодарностью.

Спасибо

Chris

1 Ответ

1 голос
/ 23 апреля 2010

В случае, если кто-то обнаружит это и столкнется с аналогичными проблемами (это относится ко всем реализациям cometd независимо от хоста), я обнаружил, что проблема была в использовании библиотеки Google js.По какой-то причине у скриптов додзё, которые я загружал из Google (1.4), не было правильной реализации cometd.Я переключил свой сценарий dojo на тот, который использовался в примере с jetty-1.6.23, и он отлично работает.

...