问题标签 [orbited]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ActiveMQ:将 Django Auth 与 Stomp 一起使用
我正在从事电力监控工作,只想将实时电力数据发送给授权用户。一些用户选择在家中安装功率传感器,其他用户则在查看这些传感器。每个传感器将样本发送到Twisted后端 - 目标是让该后端将数据转发到在浏览器中运行的 Javascript。
我目前转发数据的解决方案是一个Orbited服务器和一个 MorbidQ 实例( MorbidQ 是一个 Stomp 服务器)。我系统中的每个建筑物(例如此处)都有自己的更新频道。扭曲的后端通过 MorbidQ 频道将数据广播给任何观看的人,但任何人都可以观看。我的博客上有一篇关于从传感器到站点的数据流的条目
对于许多建筑物,我只希望几个用户能够查看给定建筑物中的实时数据。如果可能,我想使用 Django Auth,或者如果没有,我想使用某种解决方法。
保护每个用户的这些频道的最简单方法是什么?我可以使用 Django 身份验证吗?我应该使用 RabbitMQ 还是 ActiveMQ 而不是 MorbidQ?我可以采取哪些措施来确保此解决方案的安全?
对于编码,我对 C++ 和 Python 最有信心。
谢谢!
django - 应该将 django 中间件与轨道一起使用什么框架?
我在快速谷歌搜索中看到的 Django 轨道集成方法似乎没有携带 Django 抽象,比如“request.user”。“request.user”特别重要,因为我不会(可能不正确地)重新实现会话处理(这听起来可能会导致严重的安全错误)。
或者,我应该使用不同的服务器吗?我更喜欢使用稳定、成熟、流行的软件,它会得到维护和改进。Orbit 和 Django 似乎有资格。
php - 使用 Orbited、STOMP 和 MorbidQ 进行身份验证
我正在使用 Orbited 在基于 PHP 的网站上构建 Comet 聊天系统。但是,目前任何用户都可以订阅或发布到任何频道。
我要做的是让浏览器直接从 Orbited 服务器侦听更新,并让所有其他操作(订阅、发送)由 PHP 身份验证层处理,该层通过套接字与 Orbited 通信。有没有办法做到这一点,还是我需要一个更强大的消息队列?
python - 使用 Twisted 和 Comet 将命令的结果流式传输回浏览器
我正在编写一个应用程序,它将服务器上激发的 python 脚本的输出(我的意思是 sys.stdout 和 sys.stderr)实时传输到浏览器。
站点上的用户将被允许选择要运行的脚本,激发和终止他们选择的脚本,并更改一些参数,因此我需要站点上的每个用户不同的线程(用户 A 可以启动、停止和更改脚本,而用户 B 可以使用不同的脚本执行相同的操作)。
我知道我需要为 web 客户端使用彗星,并且看到项目的其余部分是用 python 编写的,我想为服务器使用twisted,但是我不太确定下一步我需要做什么!
有很多令人生畏的选项(Divmod Mantissa、Divmod Nevow、twisted.web、STOMP 等),其中一些比其他选项有更好的文档记录,这让整个事情变得相当棘手!
我有一个在轨道上使用 stompservice 的工作演示,将 Orbited.TCPSocket 用于 javascript 方面,但是我开始认为 STOMP 通道模型不适用于多线程、多运行脚本(除非我打开一个每次运行新通道,但这似乎是对通道模型的错误使用)。
谁能指出我正确的方向,或者我可以从中学习一些示例代码?
谢谢!
comet - JSONP 长轮询总是加载
我正在使用 JSONP 进行长轮询,并且 firefox 不断弹出“正在加载”微调器,使页面看起来好像还没有完成加载。有没有办法抑制这种情况?
有人告诉我,Orbited 团队有一些技巧可以抑制这种情况,但是通过 Orbited.js 代码我无法弄清楚它们是什么。任何帮助将不胜感激。
javascript - 是否可以编写一个使用 Web 套接字进行传输的 javascript SSH 客户端?
是否可以使用诸如轨道网络套接字之类的东西作为传输层在纯 javascript 中编写一个基本的 SSH 客户端?我没有看到任何这样的例子,但它似乎是一件好事。
orbited - 轨道异常数据不能是 unicode
我正在使用轨道,一旦我在生产模式下打开轨道,它会在我的屏幕上引发以下错误
-- <exception caught here> ---
File "/usr/lib/python2.6/dist-packages/twisted/web/server.py", line 150, in process
self.render(resrc)
File "/usr/lib/python2.6/dist-packages/twisted/web/server.py", line 157, in render
body = resrc.render(self)
File "/usr/local/lib/python2.6/dist-packages/orbited-0.7.10-py2.6.egg/orbited/transports/base.py", line 21, in render
self.conn.transportOpened(self)
File "/usr/local/lib/python2.6/dist-packages/orbited-0.7.10-py2.6.egg/orbited/cometsession.py", line 322, in transportOpened
self.cometTransport.flush()
File "/usr/local/lib/python2.6/dist-packages/orbited-0.7.10-py2.6.egg/orbited/transports/base.py", line 45, in flush
self.write(self.packets)
File "/usr/local/lib/python2.6/dist-packages/orbited-0.7.10-py2.6.egg/orbited/transports/htmlfile.py", line 42, in write
self.request.write(payload);
File "/usr/lib/python2.6/dist-packages/twisted/web/http.py", line 862, in write
self.transport.write(data)
File "/usr/lib/python2.6/dist-packages/twisted/internet/tcp.py", line 420, in write
abstract.FileDescriptor.write(self, bytes)
File "/usr/lib/python2.6/dist-packages/twisted/internet/abstract.py", line 170, in write
raise TypeError("Data must not be unicode")
exceptions.TypeError: Data must not be unicode
我完全不知道可能是什么问题。谁能指出我正确的方向。
django - 开发高性能、可扩展的 Comet 应用程序
好吧,标题说明了大部分内容。我正在寻找一个聊天应用程序,它有望成为更多的东西,目前我正在考虑我应该在什么基础上构建它的选项。
我已经查看了以 Redis 作为主要选项的 Tornado - Tornado 作为 Comet 服务器,非常适合长轮询以检索 Redis 上的消息,我也打算将其用作持久数据存储作为具有漂亮 subpub 功能的消息队列。
不过,我也听说过有关 Django、RabbitMQ、MongoDB 和 Orbited 的好消息。JavaScript 对我来说不是什么大问题,所以 Orbited 对 JavaScript 的支持也不算什么。
真的,我可能很乐意在我为自己选择的路线上发展,但如果我的计划中有任何明显的缺陷,我希望有人在我发现我浪费了几个月之前指出它们对此。
python - Comet 用于消息队列上基于用户的通知
我们尝试构建应该使用 Comet (AJAX Push) 向个人用户发送通知的应用程序。大多数通知的超时时间都很短。
当我们运行 RabbitMQ 时,通过 AMQP 发送消息是最简单的。我想知道解决单个用户的最佳方法是什么,以便 Comet 服务器和队列服务器都可以轻松完成工作。
我研究了许多解决方案,包括将 Carrot与 Orbited、Tornado 等一起使用。
如果彗星服务器为每个用户注册一个消费者(使用队列),那么这些消费者要么必须保持超时,要么在每次使用后被丢弃。这两种解决方案似乎都不是很有希望。我想在 Tornado/Carrot 中可能会有这样的事情:
或者,comet 服务器只能有一个队列消费者,并且必须实现自己的轻量级消息队列,该队列可以缓存传入的通知,直到用户连接并使用它们。这似乎是 memcached 可能有用的东西,但我没有这方面的经验。
这里最好的方法是什么?