2012-12-09 40 views
0

我打算將實時通知集成到當前正在處理的Web應用程序中。我決定和XMPP一起爲這個選定的openfire服務器,我認爲它適合我的需要。XMPP-- openfire,PHP和python web服務

的前端使用的strophe庫來獲取使用BOSH從我的Openfire服務器的通知。但是通知是通知和其他消息將由我的應用程序發佈,因此我認爲此代碼需要駐留在後端。 起初我thougt與PHP XMPP庫,例如XMPHP和JAXL去,但後來我想,這會造成多大的開銷,每個腳本將不得不做這樣的連接,認證等相同的步驟,我認爲這將使PHP結束一點點緩慢且無響應。

現在我想創建充當Web服務的PHP會調用該應用程序將處理與XMPP服務的東西,一箇中間件的應用。這樣做的好處是,這個應用程序(如果你願意,服務器)將不得不連接一次,它將坐在那裏監聽一個端口。我也打算以異步方式構建它,以便它首先從我的PHp應用程序中獲取所有請求,然後在沒有更多請求時進行處理。去做通知發佈的東西。我計劃使用SleekXMPP在Python中創建此服務。

這就是我計劃的。我是新來的XMPP和這整個Web服務的東西ANS想借像內存和CPU使用率,優點,缺點,可擴展性問題,安全性等

提前感謝這對於問題的評論。

PS: - 此外,如果這樣的事情已經存在(雖然我沒有很多的谷歌搜索後發現),請直接與我那裏。

編輯--- 中級服務應該做以下(但不限於): 1.發佈不同級別的組和社區頁面的通知。 2.通知單個用戶在某些事件。 3.用戶註冊(可以使用用戶服務插件來完成)。

編輯--- 此外,它應該創建pub-sub節點,並從這些pub-sub節點訂閱和取消訂閱用戶。

此外,我想通知和消息存儲在數據庫中(Openfire的沒有)。這會是一個不錯的選擇嗎?

+1

您可以提供關於此中間件應用程序的更多信息嗎? –

回答

0

在我看來,像XMPP是有點爲你在做什麼重量級的解決方案,因爲通信只是單向的和你只是發送通知(沒有實時多用戶聊天等等。)。

我會考慮對服務器< =>客戶端通道和Redis(http://redis.io)使用類似Socket.io(http://socket.io)的東西來進行持久化。

+0

好吧,我也將在完成通知善良後開發聊天和其他實時功能 。然而,對於聊天,我只需要在前端實現代碼(使用strophe)。 – mlakhara