2010-07-17 37 views
4

想要建立一個基於網絡的即時消息系統,類似於www.chatzy.com 問題是什麼是最好的方式去做呢?構建基於Web的即時消息的最佳方式?

Go hell Ajax的方式,我寫了一個腳本,不斷ping和更新數據庫的談話?或者玩弄XMPP?

如果答案是XMPP?我將不勝感激指向任何在線資源,詳細說明XMPP如何用於構建此類服務...(通過谷歌完成了一些搜索,但結果流行起來)

我將使用PHP,但可以使用Python也是如果它提供了一個更好的解決方案來完成這個任務。

感謝

+1

如果你想允許你的用戶發送消息給你的網絡以外的其他人(所以不僅僅是你的網站聊天),你應該一定要使用XMPP。 – Gumbo 2010-07-17 16:14:17

回答

4

XMPP/BOSH

  • 現在我會使用XMPP/BOSH編寫基於Web的IM。我發現Prosody支持BOSH的最簡單的服務器。那麼你根本不需要編寫任何服務器端代碼。
  • 那麼對於JavaScript的,我會用strophe.js

未來

  • 像巴勃羅指出,你可以看看的WebSockets。但是巴勃羅對Gmail有誤解。它不使用websockets。 websockets的主要缺點是瀏覽器支持。這是未來,但還沒有。

錯誤

  • 輪詢沒有規模。我不會推薦它。
+1

我們使用ejabberd作爲我們的服務器,它也支持BOSH開箱即用。我們還編寫了基於Strophe的自己的JavaScript客戶端,但如果您想要現成的客戶端,http://www.ijab.im/看起來是一個很好的選擇。 – 2010-07-23 13:08:02

2

使用AJAX來ping和更新數據庫是不是一個很好的選擇。

我建議你閱讀約WebSockets。這是GMAIL聊天(以及其他)的方式。

+0

請記住,WebSockets協議仍可能發生變化。並且很多瀏覽器都支持它(只有流血的邊緣),所以您需要使用某種回退:http://github.com/gimite/web-socket-js通常這是要走的路,但。 – igorw 2010-07-17 16:21:11

1

如果您正在尋找開發使用PHP和小javascript,檢查Jaxl框架構建Web應用程序。 http://github.com/abhinavsingh/JAXL

使用ejabberd /韻律作爲jabber服務器,它們穩定且可擴展到足以提供足夠的吞吐量。

確實推薦使用websockets,但並非所有的瀏覽器都支持它們直到日期。

相關問題