2012-08-14 76 views
2

我試圖建立一個pub/sub系統。我的技術總監已經建議將Rabbitmq和STOMP用於我已分配的項目。瞭解Rabbitmq權限

在這個系統中,我希望在服務器端創建交換並傳遞給用戶訂閱。我希望用戶訂閱交換並在信息可用時接收信息。我不希望客戶端能夠訂閱任意交換(或用於主題交換的路由密鑰,我不確定我想用什麼系統)。

例如,如果某人爲公司widgetInk工作,當他們登錄到我們的網站時,他們會收到與widgetInk.whatever交換和AllUsers.whatever交換的連接,但就是這樣。如果客戶端試圖訂閱別的東西,他們會得到一個錯誤。

I've gone through all of the RabbitMQ tutorials and I've looked through their how to section.我發現這個basic article on access control, but having read it three times now I still don't know if rabbitmq is a good fit for my requirements.

可以RabbitMQ的配置爲我的要求是什麼?我可以使用什麼資源來了解Rabbitmq的許可系統?有沒有人建立或使用過這樣的系統?切換到ZeroMQ或ActiveMQ是否符合我的最佳利益?

回答

0

我想提一下你可能使用的另一個平臺:Autobahn(開源)或WebMQ(基於Autobahn)。

WebMQ提供了這些功能(除了很多其他的開箱即用):

  • PubSub的過度的WebSocket(WAMP
  • 客戶端會話的認證(WAMP-CRA)
  • 細粒度可配置授權主題

如果您想要開源/建立自己的道路,這裏有一些tutorials。如果您需要一個集成的,商業支持的Web UI用於配置/管理的產品,請與我們聯繫。

聲明:我是Autobahn/WAMP的創造者,爲Tavendo工作。

+0

如果這只是我的項目,我實際上會試試這個。我看到的問題是,我試圖用c/C++來管理服務器端,因爲我們的主服務器客戶端是用c/C++編寫的,我選擇的任何東西都必須與它集成。我知道Python可以與c/C++集成,但我在圖騰柱上的表現相當低,而我的公司並不習慣Python作爲一種語言。 – AlexLordThorsen 2012-08-14 08:07:55

+0

RabbitMQ是用Erlang編寫的。 Erlang和C++之間的緊密集成是可能的(就像Python一樣),但可能不是微不足道的。另一件事是用C++中的客戶端訪問WebSocket服務器/ PubSub消息代理。目前,C++沒有WAMP客戶端庫。後者在使用強大的WebSocket庫(如WebSocket ++(基於C++/ASIO))時可能會付出極大的努力。 – oberstet 2012-08-14 19:29:19

+0

我目前正試圖讓RabbitMQ-c插件與我的服務器端一起工作。我會研究WebSocket ++。我目前的解決方案堆棧是stomp.js || Sockjs.js || Rabbitmq-web-stomp || rabbitmq || RabbitMQ的-C。我對WebSockets非常陌生,而且這個項目對研究很有意義。感謝您的替代閱讀。 – AlexLordThorsen 2012-08-14 20:18:50