2009-10-15 114 views
4

我正在致力於power monitoring並希望僅向授權用戶發送實時電源數據。一些用戶選擇在家中安裝功率傳感器,其他用戶正在查看這些傳感器。每個傳感器將樣本發送到後端 - 目標是讓此後端將數據轉發到在瀏覽器中運行的Javascript。ActiveMQ:使用Django Auth with Stomp

我目前的轉發數據的解決方案是Orbited服務器和MorbidQ(MorbidQ是Stomp服務器)的實例。我係統中的每個建築物(example here)都有自己的更新頻道。扭曲的後端通過MorbidQ頻道將數據廣播給任何人觀看,但任何人都可以觀看。我的博客上有一條關於the data flow from sensor to site

對於許多建築物,我只想讓幾個用戶能夠看到給定建築物中的實時數據。如果可能的話,我想使用Django Auth,或者如果不是,則使用某種解決方法。

每個用戶保護這些頻道的最簡單方法是什麼? 我可以使用Django Auth嗎? 我應該用RabbitMQ還是ActiveMQ代替MorbidQ? 我可以採取哪些措施來保持此解決方案的安全?

對於編碼,我對C++和Python最有信心。

謝謝!

回答

1

如果您使用morbidq的restq擴展名,每次用戶嘗試連接時都可以讓它向您的應用程序發送http回調。 (見http://www.morbidq.com/trac/wiki/RestQ)。您的django應用程序可以在連接嘗試後返回yes或no(在通過一些認證程序後運行)。

+0

+1這聽起來像一個很好的解決方案!非常感謝你 :) – 2009-10-15 22:10:55

1

恢復舊線程:MorbidQ不適用於生產使用AFAIK。 ActiveMQ是一個更強大的野獸,並提供更好的方法來處理基於用戶的身份驗證。我在2010年寫了this,它涉及靜態用戶身份驗證 - 但ActiveMQ允許您傳遞用戶身份驗證的動態列表,該身份驗證可以來自應用程序可用的任何後端。我上面提到的這個帖子並沒有涉及到它,但是對ActiveMQ身份驗證/安全手冊部分(以及一些Java知識)的深入研究可以爲這樣的使用啓用一個非常糟糕的設置。如果LDAP可用,甚至更好。