2013-06-01 31 views
-1

如果答案是「使用xmpp BOSH」,那麼要使用BOSH,我們需要在可以與xmpp服務器交互的CM(連接管理器)服務器中間。因此,xmpp客戶端到CM交互將發生在正常的http協議(這將是可伸縮的)上,但是CM到xmpp服務器將再次發生使用長連接的tcp連接,這將導致可伸縮性問題。如何避免XMPP中的長期tcp連接,以便服務器可以處理數百萬用戶?

我們如何讓xmpp客戶端服務器更具可擴展性?

回答

0

基於同步HTTP(BOSH)的雙向流基本上是一種保持連接處於活動狀態以允許系統發送和接收數據的技術。爲了能夠通過HTTP使用xmpp,你將不得不使用BOSH。

對於您關心的可伸縮性,您基本上可以使用可擴展性的組件,例如Nginx組件代替Apache httpd,也有許多連接管理器可用,旁遮普是所有可伸縮性最高的組件。如果您將Openfire用作XMPP服務器,則它具有預先建立的連接管理器,它已證明具有可擴展性。

+0

謝謝!所以,你的意思是說,旁遮普人可以通過http與xmpp客戶端進行交談,同時擁有數千個與XMPP服務器的長期連接。我明白,當我們想要基於http的客戶端使用xmpp時,必須使用BOSH,但問題是BOSH應該用於可擴展性,因爲BOSH不需要客戶端和CM服務器(例如旁遮普)之間的長時間tcp連接。 –

+0

BOSH實際上需要客戶端和服務器之間的雙向長期TCP連接。您可以通過閱讀關於BOSH的RFC摘要http://xmpp.org/extensions/xep-0124.html來了解它。據我瞭解,BOSH不是一種高擴展性技術,如果您希望客戶端和服務器之間的即時協作,應該使用BOSH。 –

相關問題