3

我正在尝试使用 iJetty 在 Android 上实现 Cometd/Bayeux 服务器。Jetty 实现本身可以很好地与 servlet 一起提供静态页面。我正在尝试提高赌注并在手机上创建一个 Bayeux 应用程序,但我遇到了一些麻烦。我可以点击上面有 dojo cometd 脚本的页面,但我无法订阅该频道。当我查看 firebug/chome 开发人员工具时,我会看到一系列持续几毫秒 (~14) 的帖子/获取。但是,当我在普通机器上运行 cometd 应用程序时,posts/gets 会持续几秒钟(~14 秒),然后超时并重新打开连接。第二种情况对我来说是有意义的,因为我理解了 HTTP 中的延续是如何工作的。所以我' 我认为某些东西不允许这些连接挂起并过早返回值并因此关闭连接。我会发布我的源代码,但我不确定要发布什么内容才能发布所有内容......(虽然它是开源的,所以如果你想看看它在http://webtext-android.googlecode.com)。

所以我的问题是,是否有人认为 Android 系统可能会施加一些潜在的限制来阻止这些 servlet 工作?Jetty Bayeux 实现是否对底层系统做出了假设?还是更有可能不知何故我对 ContinuationCometdServelt 的实现不好?我应该注意到来自客户端的所有帖子/获取都返回 200 条 OK 消息,所以我不倾向于认为 Android 系统只是终止连接。

我知道这有点离题,我肯定会尝试做一些与众不同的事情,但任何建议或提示将不胜感激。

4

1 回答 1

1

万一有人发现了这一点并遇到了类似的问题(这适用于所有的彗星实现,无论主机如何),我发现问题在于使用 Google js 库。出于某种原因,我从 Google (1.4) 加载的 dojo 脚本没有有效的 cometd 实现。我将我的 dojo 脚本切换到 jetty-1.6.23 示例使用的脚本,它运行良好。

于 2010-04-23T15:47:17.467 回答