我正在尝试使用iJetty在Android上实现Cometd / Bayeux服务器。 Jetty实现本身可以很好地提供静态页面和servlet。我试图提高赌注并在手机上创建一个Bayeux应用程序,但我遇到了一些麻烦。我可以点击其上有dojo cometd脚本的页面,但我无法订阅该频道。当我查看firebug / chome开发人员工具时,我看到一系列帖子/获取最后几毫秒(~14)。但是,当我在普通机器上运行cometd应用程序时,posts /会在超时并重新打开连接之前持续几秒钟(~14秒)。第二种情况对我理解HTTP中的延续是如何有意义的。所以我认为某些东西不允许这些连接挂起并过早地返回一个值并因此关闭连接。我会发布我的来源,但我不确定发布所有内容的帖子...(虽然如果你想在http://webtext-android.googlecode.com查看它是开源的。)
所以我的问题是,是否有人认为Android系统可能存在一些阻碍这些servlet工作的潜在限制?是否存在Jetty Bayeux实施关于底层系统的假设?或者更有可能的是,我对ContinuationCometdServelt的执行情况不好?我应该注意,客户端的所有帖子/获取都会返回200 OK消息,所以我不认为Android系统只是终止连接。
我知道这有点不对劲,我肯定会尝试做一些与众不同的事情,但任何建议或提示都会非常感激。
谢谢,
克里斯
答案 0 :(得分:1)
如果有人发现这个并且有类似的问题(这适用于所有的cometd实现而不管主机),我发现问题在于使用Google js库。出于某种原因,我从谷歌(1.4)加载的dojo脚本没有有效的cometd实现。我将我的dojo脚本切换到了jetty-1.6.23示例所使用的脚本,它运行得很好。