13

有人成功使用过 ZmqSocket.js吗?我想知道如何使用它在浏览器和 zeromq 服务器应用程序之间建立安全通道。这种用例还有其他/更好的选择吗?

4

3 回答 3

10

我从未使用过 ZmqSocket.js,但我可以告诉你,这可能不是一个好主意(目前)。这是因为 zmq 仍然假设两个对等方都非常了解协议,并且如果给出无效数据就会崩溃(尽管他们正在努力修复这个问题)。

我现在要做的是有一个简单的基于node.js的代理,它使用socket.io与浏览器通信,并将数据推送到(并从中读取)一个 zeromq 套接字,应用程序的其余部分就在其中。


2013 年更新:我编写了sockjsproxy,它基本上代理了与sockjs和 zeromq 之间的消息,允许您通过实现(非常简单)基于 ZeroMQ 的协议以您想要的任何语言实现服务器。

我个人将它与 Python 和 Scala 服务器一起使用来构建实时 Web 应用程序。

于 2011-11-24T16:28:20.937 回答
4

我开始寻找一种将网络浏览器用于 UI 的解决方案。

我有一个 Java 应用程序,它从多个来源收集信息,分析它并将结果存储在数据库中,允许其他系统获取信息。

Java 应用程序在 PUSH ZMQ 套接字上提供信息(日志、事件等),并提供一个 REP 套接字来控制它(更改参数、诊断请求等)。

我目前有一个带有使用 Tk 的 UI 的 Python 应用程序,我计划用 Web 界面替换它。

我对 ZMQ JavaScript 投标的问题是它使用了 iOS 不支持的 flash 组件。

做了一些谷歌搜索,我发现了一篇名为“从浏览器与 ZeroMQ 交互”的帖子,它使用了 NullMQ

我希望这有帮助。

于 2012-11-28T15:31:06.950 回答
1

另一种观点:实现一个处理所有ZeroMQ 策略的 WebSocket-to-ZeroMQ 代理似乎需要做很多工作,但您可以很快让部分代理运行。像 Emil 一样,我正在尝试使用 PyZMQ <--Tornado--> WebSocket 桥;就我而言,我只关心从 SUB 套接字获取消息。

在我的模型中,我从浏览器向代理发送 JSON 消息,请求创建新的 ZMQ 套接字。当这些套接字接收到数据时,它们会通过同一个 WebSocket 连接将数据发送回浏览器。

这是python 代理后端和我的javascript 代理前端。在我的 Python 代码中,AsyncReciever该类是一个非常薄的包装器,ZMQStream它基本上运行 JSON 编码/解码。如果您想将原始 ZeroMQ 字节发送到浏览器,事情会更容易:只需将ZMQSocket.on_message回调直接连接到BridgeWebSocket.write_message.

于 2014-05-15T11:36:45.630 回答