2010-07-26 169 views
1

我已經實現了一個使用Jabber的Web聊天系統,Tigase服務器和基於Ajax的客戶端使用JsJac通過BOSH進行通信,Apache mod_proxy將HTTP通信轉發給Tigase。這種方式運行得很好,但我注意到性能與桌面Jabber客戶端(如Exodus)之間存在一個主要差距,特別是在加入具有長消息歷史記錄的多用戶聊天時。提高BOSH吞吐量

具體來說,從監控HTTP流量看來,服務器每個HTTP請求響應週期只能發送一個XMPP消息。對於正常使用情況來說,這很好(我們可以獲得大約80-100毫秒的往返時間,這並不算太壞),但是在加載MUC歷史記錄時,它可能是一個真正的拖延。

所以我的問題是:Jabber或BOSH是否提供了可能適用於此用例的捆綁或流式消息的任何機制?已經有客戶和服務器在那裏實施這樣的事情了嗎?或者我必須自己修改Tigase和JsJac(這當然可能,但並不理想)?

+0

你有沒有解決這個問題?聽起來像一個很棒的項目... – Kevin 2011-03-18 02:02:12

+0

不完全是,但它是我仍然感興趣的一個話題。我會在下面查看亞歷克的答案,看看會發生什麼。 – Dan 2011-03-24 18:54:26

回答

1

實際上,BOSH服務器可以從Jabber服務器收集儘可能多的響應,並將它們作爲單一響應發送給客戶端。我是一個這樣的BOSH庫的作者:http://code.google.com/p/node-xmpp-bosh/

在BOSH的情況下,響應主體與請求主體無關。我的意思是,響應可能並且大部分將是對不相關請求的響應(通常是稍後的請求)。

+0

這顯然是一個Tigase問題(儘管我不再有Tigase實例可用,所以我無法驗證它)。在其他配置中我沒有遇到這個問題。 – Dan 2012-06-11 21:00:46

1

我已經在客戶端(瀏覽器)上的服務器和GWT上實現了帶有Java的BOSH通信解決方案。 C客戶端的實現也已經完成。目前,我正在使解決方案可以在線進行測試。請看看下面的介紹谷歌,看看我的解決方案是您業務相關的:

https://docs.google.com/present/edit?id=0AUPL-u98h45WZGQzNWNjOGhfMGd6bWI1NmNk&hl=en&authkey=CPTzrWc

要查看演講者備註,請務必點擊「查看演講者備註」按鈕,在自下而上頁面的右上角。