2010-04-21 19 views
2

我正在尝试在Android上使用iJetty实现Cometd/Bayeux服务器。 Jetty实现本身可以很好地服务静态页面以及servlet。我正在努力尝试一下,在手机上创建一个Bayeux应用程序,但我遇到了一些麻烦。我可以打到有dojo cometd脚本的页面,但我无法订阅该频道。当我查看firebug/chome开发者工具时,我看到一系列post/gets持续几毫秒(~14)。但是,当我在普通机器上运行cometd应用程序时,posts /会在超时并重新打开连接之前持续几秒(〜14秒)。第二种情况对我来说很有意义,因为我了解HTTP在HTTP中的延续方式。所以我认为有些东西不允许这些连接挂起并过早地返回一个值,从而关闭连接。我会发布我的源代码,但我不知道要发布什么内容,但是我不知道该发布什么......(它是开源的,但如果你想看看它在http://webtext-android.googlecode.com)。Android上Cometd/Bayeux使用的系统要求

所以我的问题是,有没有人认为可能会有一些底层的限制,由Android系统强制阻止这些servlet工作?是否有关于底层系统的Jetty Bayeux实现的假设?或者更有可能的是,我有一个不好的ContinuationCometdServelt实现?我应该注意到所有帖子/从客户端获得返回200 OK消息,所以我不认为Android系统只是简单地终止连接。

我知道这是有点离墙,我肯定要做一些有点不同寻常的事情,但任何建议或提示将不胜感激。

感谢,

克里斯

+0

+1因为在Android设备上运行Jetty很讨厌:) – SyntaxT3rr0r 2010-04-21 20:26:51

+0

试图抓住我白色和书呆子...... – 2010-04-21 20:31:47

回答

1

万一有人发现这一点,也有类似的问题(这适用于所有的cometd实现不论是主机),我发现,这个问题是使用谷歌的JS库。出于某种原因,我从Google(1.4)加载的dojo脚本没有有效实现cometd。我将我的dojo脚本转换为jetty-1.6.23示例使用的脚本,并且它完美地工作。