2009-10-15 50 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可用,甚至更好。