質問

ijettyを使用してAndroidにCOMETD/Bayeuxサーバーを実装しようとしています。 Jettyの実装自体は、サーブレットと一緒に静的ページを提供するのにうまく機能します。私は少しアンティを上げて、電話でバイユーアプリケーションを作成しようとしていますが、問題があります。 Dojo CometDスクリプトがあるページを押すことができますが、チャンネルを購読することはできません。 FireBug/Chome開発者ツールを表示すると、一連の投稿/数ミリ秒(〜14)を取得します。ただし、通常のマシンでCOMETDアプリケーションを実行すると、接続をタイムアウトして再開する前に、投稿/取得数秒(約14秒)になります。この2番目のシナリオは、HTTPの継続がどのように機能するかを理解して、私にとって理にかなっています。だから、私は何かがそれらの接続を開いてハングアップし、値を早めに戻し、結果として接続を閉じることを許可していないと考えています。私は自分のソースを投稿しますが、すべてを投稿する以外に何を投稿するかわからない...(それはオープンソースであるので、あなたがそれを見たいなら http://webtext-android.googlecode.com).

私の質問は、これらのサーブレットが機能しないようにしているAndroidシステムによって課される根本的な制限があると誰もが考えていますか?基礎となるシステムに関して、Jetty Bayeuxの実装によって行われた仮定はありますか?それとも、どういうわけか私がContinuationCometdServeltの悪い実装を持っている可能性が高いのでしょうか?クライアントからのすべての投稿/取得は200のOKメッセージを返していることに注意する必要があります。そのため、Androidシステムが単に接続を終了しているとは考えていません。

私はこれが少し壁から外れていることを知っています、そして私は間違いなく普通のことから少し何かをしようとしていますが、どんな提案やヒントは大歓迎です。

ありがとう、

クリス

役に立ちましたか?

解決

誰かがこれを発見し、同様の問題を抱えている場合(これはホストに関係なくすべてのCOMETD実装に当てはまります)、問題はGoogle JSライブラリの使用に関するものであることがわかりました。何らかの理由で、Google(1.4)からロードしていたDojoのスクリプトには、CometDの有効な実装がありませんでした。 Dojo ScriptをJetty-1.6.23の例で使用したものに切り替えましたが、完全に機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top