4

我正在从事电力监控工作,只想将实时电力数据发送给授权用户。一些用户选择在家中安装功率传感器,其他用户则在查看这些传感器。每个传感器将样本发送到Twisted后端 - 目标是让该后端将数据转发到在浏览器中运行的 Javascript。

我目前转发数据的解决方案是一个Orbited服务器和一个 MorbidQ 实例 MorbidQ 是一个 Stomp 服务器)。我系统中的每个建筑物(例如此处)都有自己的更新频道。扭曲的后端通过 MorbidQ 频道将数据广播给任何观看的人,但任何人都可以观看。我的博客上有一篇关于从传感器到站点的数据流的条目

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

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

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

谢谢!

4

2 回答 2

1

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

于 2009-10-15T21:56:47.240 回答
1

恢复旧线程:MorbidQ 不适用于生产用途 AFAIK。ActiveMQ 是一个更加健壮的野兽,并提供了更好的方法来处理基于用户的身份验证。我在 2010 年写了这篇文章,它处理静态用户身份验证 - 但 ActiveMQ 允许您传递动态用户列表进行身份验证,该列表可以来自应用程序可用的任何后端。我上面提到的帖子没有处理它,但是稍微深入研究一下 ActiveMQ 身份验证/安全手册部分(加上一些 Java 知识)可以为这种使用启用一个非常讨厌的设置。如果 LDAP 可用,那就更好了。

于 2011-12-07T10:41:29.693 回答