ActiveMQ:使用Django Auth和Stomp

时间:2009-10-15 09:22:49

标签: python django stomp orbited

我正在处理power monitoring,并希望仅向授权用户发送实时电源数据。一些用户选择在他们的房屋中安装功率传感器,其他用户正在查看这些传感器。每个传感器都将样本发送到Twisted后端 - 目标是让这个后端将数据转发到浏览器中运行的Javascript。

我目前转发数据的解决方案是Orbited服务器和MorbidQ的实例(MorbidQ是Stomp服务器)。我系统中的每个建筑物(example here)都有自己的更新渠道。扭曲的后端通过MorbidQ频道将数据广播给任何观看者,但任何人都可以观看。我的博客上有关于the data flow from sensor to site

的条目

对于许多建筑物,我只希望有几个用户能够查看给定建筑物中的实时数据。如果可能,我想使用Django Auth,或者如果没有,我想使用某种解决方法。

每个用户保护这些频道的最简单方法是什么? 我可以使用Django Auth吗? 我应该使用RabbitMQ还是ActiveMQ而不是MorbidQ? 我可以采取哪些措施来保证此解决方案的安全?

对于编码,我对C ++和Python最有信心。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果对morbidq使用restq扩展,则每次用户尝试连接时,都可以让它向应用程序发送http回调。 (见http://www.morbidq.com/trac/wiki/RestQ)。您的django应用程序可以只返回是或否连接尝试(在通过某些身份验证程序运行之后。)

答案 1 :(得分:1)

恢复旧线程:MorbidQ不适合生产用途AFAIK。 ActiveMQ是一个更强大的野兽,提供了更好的方法来处理基于用户的身份验证。我在2010年写了this来处理静态用户身份验证 - 但是ActiveMQ允许您传递动态的用户列表以进行身份​​验证,这可以来自应用程序可用的后端。我上面提到的帖子没有处理它,但是对ActiveMQ身份验证/安全手册部分(加上一些Java知识)的一点挖掘可以为这种用法启用一个非常讨厌的设置。如果LDAP可用,甚至更好。