2010-04-21 20 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示例使用的腳本,並且它完美地工作。