我設計了當前用於通知對從服務器端(Java)的變更內容的一個JavaScript的Web應用程序的自定義郵件系統的替代品。這種傳統的消息傳遞系統通過使用基於自定義文本的協議和普通Java套接字通過Flash XMLSocket工作。AMQP或XMPP的客戶端通知
替換將被用來不僅由Web應用程序(通過網絡插座,而非Flash),但通過C#編寫過一個額外的桌面客戶端應用程序。
我的要求是:
- 用戶認證
- 傳輸加密(SSL/TLS)
- 雙向信息交換
- 某種(自動)發佈/訂閱,使用戶只得到消息他們被允許接收基於已建立的方案(以便我們可以使用現有的庫如果可能)
- 消息交換
- 集羣能夠服務器組件
此時,消息系統將只用於發佈更新到客戶端。客戶端將對這些消息作出反應,並直接從服務器獲取更多信息(而不是通過消息傳遞系統)。如果這個新的消息傳遞系統成功建立,它可能會被用於未來更高級的用例。一些可能性可能包括用戶聊天,文件交換和遠程控制服務器組件。
我對可行技術進行了一些研究以實現這些要求,我認爲我的選擇歸結爲使用ejabberd(XMPP)或RabbitMQ(AMQP)。根據我的要求,這兩個系統的主要優點和缺點是什麼?我們已經將RabbitMQ用於我們系統基礎架構的其他部分,所以這是我自然而然的選擇。我只是不確定讓客戶端應用程序直接連接到這樣一個關鍵的主要組件是否是一個好主意。儘管通過爲客戶端通知使用不同的RabbitMQ安裝,這可能會得到緩解。
如果您仍在使用Java,那麼J2EE JMS可能是一個選項或SonicMQ。 – Romoku