问题标签 [zeromq]

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.

0 投票
2 回答
1340 浏览

.net - 在 excel/vba 中使用 zeromq

我是 zeromq 的超级新手,我想知道是否有任何在 excel/vba 中使用 zeromq 的示例?我猜我们可以使用 C#/.net 绑定或 VC++ 并创建一个 dll 并让 excel 调用它?我尝试使用谷歌搜索并没有找到任何示例。(我是一个老 C++ linux 编程,对 windows 编程几乎一无所知)

让我开始的任何帮助都会非常有用。

0 投票
3 回答
16439 浏览

c# - 0MQ:如何以线程安全的方式使用 ZeroMQ?

我阅读了ZeroMq 指南,偶然发现了以下内容:

您不得在线程之间共享 ØMQ 套接字。ØMQ 套接字不是线程安全的。从技术上讲,这样做是可能的,但它需要信号量、锁或互斥体。这将使您的应用程序缓慢而脆弱。在线程之间共享套接字的唯一地方是在语言绑定中需要像套接字上的垃圾收集这样的魔法。

后来:

记住:不要使用或关闭套接字,除非在创建它们的线程中。

我也明白 ZeroMQContext是线程安全的。

如果一个类注册另一个类的事件,在 .Net 中,该事件可能会从与创建侦听器的线程不同的线程调用。

我认为只有两种选择可以通过 ZeroMQ-Sockets 从事件处理程序中分派某些东西:

  • 将 eventhandler-invoking-thread 同步到 ZeroMQ-Socket创建的线程
  • 使用线程安全的 ZeroMQ- 为事件处理程序中的线程创建一个新的 ZeroMQ- Socket/获取现有的 ZeroMQ-SocketContext

似乎 0MQ-Guide 不鼓励第一个,我不认为为每个线程创建一个新的 ZeroMq-Socket 是高性能的/要走的路。

我的问题
从事件处理程序中通过 0MQ 发布消息的正确模式(它的意思是)是什么?

此外,该指南的作者在编写时是否考虑到了 .Net 的 ZeroMQ 绑定:

在线程之间共享套接字的唯一地方是在语言绑定中需要像套接字上的垃圾收集这样的魔法。?

这是一些示例代码来强调我的问题/问题:

0 投票
2 回答
36191 浏览

python - 为什么 zeromq 在 localhost 上不起作用?

这段代码很好用:

但是这段代码不起作用

它引发了这个错误:

ZMQError:没有这样的设备

为什么,zeromq 不能使用 localhost 接口?

它只适用于同一台机器上的 IPC 吗?

0 投票
1 回答
1302 浏览

java - JZMQ 无法在 Ubuntu 上构建 debian 包

目前,我在让 JZMQ 在 Ubuntu(10.04.2 LTS 服务器,x86)上编译时遇到了严重的问题。我已经从源代码安装了 0MQ,但是为 JZMQ 构建的 debian 包失败:

我以前没有太多构建像这样的 debian 包的经验,所以下面是完整的堆栈跟踪,以防万一能够提供帮助。

在我对此失去理智之前,任何帮助都会非常感激。;]

0 投票
3 回答
5856 浏览

c++ - 如何使用 ZeroMQ 接收多部分消息?

我无法让 ZeroMQ C++ 包装器接收多部分消息。使用 C 版本的相同代码工作得很好,但它会导致一个异常,而 C++ 根本没有解释。多部分处理代码如下:

非常简单;这个版本不工作。但是如果我注释掉 while 循环中的前两行并取消注释当前注释的(C 版本)代码,它就可以工作。这是 Windows XP sp3、Zeromq 2.1.1 和 Visual Studio 2010 Express。

如果我发送单部分消息,则两个版本都可以正常工作。我究竟做错了什么?

0 投票
2 回答
6537 浏览

python - 零 mq pub/sub 多部分不工作

这是我的脚本。

而且,问题是......为什么这段代码不起作用?

[编辑] 在 zeromq 邮件列表上获得超快速响应后,我更新了上面的代码。

0 投票
1 回答
313 浏览

ruby - ZeroMQ 上的 PubSubHubub

是否可以通过ZeroMQ编写PubSubHubBub集线器服务?

更新:我不打算重写 PubSubHubbub 协议。我认为可以编写一个集线器,在 ZMQ_PUB/ZMQ_SUB 套接字(zmq_socket(3))之上实现,但直到现在我还不清楚它是否有意义或什么。

0 投票
5 回答
3504 浏览

gtk - 如何在 GTK/QT/Clutter 应用程序中使用 ZeroMQ?

gtk应用程序中,所有的执行都发生在gtk_main函数内部。其他图形框架作品具有类似的事件循环,app.exec例如QTClutter。然而, ZeroMQ是基于这样一个假设,即它被插入到一个循环中(例如,请参见此处的示例)。clutter_mainwhile (1) ...

您如何结合这两种执行策略?

我目前想在用 C 编写的杂乱应用程序中使用 zeromq,所以我当然希望直接回答这个问题,但也请为其他变体添加答案。

0 投票
1 回答
3806 浏览

c++ - 在 C# (protobuf-net) 中序列化,在 C++ (protobuf) 中反序列化:类中超过 5 个字段

我在反序列化 C++ 中的对象时遇到问题,我已经在 C# 中序列化,然后使用 ZMQ 通过网络发送。我相当肯定 ZMQ 部分工作正常,因为 C++ 服务器应用程序 (Linux) 成功接收来自 C# (Windows) 的序列化消息并将它们发送回 Windows,在那里它可以成功反序列化消息,所以我不认为我在这方面,我正在经历任何类型的截断或丢弃的数据包。

但是,当我在 Linux 服务器上收到消息时,C++ 反序列化方法没有正确反序列化,它会在第 6 个字段中抛出一些二进制数据(我可以在 MyObject.DebugString() 中看到),但没有数据任何其他字段。然而,这里奇怪的部分是,我上的一个有 5 个字段的类工作得非常好。C++ 正确反序列化它并且所有数据都正常工作。以下是我的代码的一些花絮。任何帮助将不胜感激。

输出如下所示:

我在复制和粘贴时遇到了麻烦,但输出可能会持续这样的 3 或 4 行。

这是我的 TestType 类(原型文件):

字段“f”被列为字节,因为当它是一个字符串之前它给我一个关于 UTF-8 编码的警告,但是,当这个类只使用 5 个字段(枚举是其中之一)时,它没有给出我那个错误。这几乎就像不是反序列化,而是将整个类的二进制文件扔到字段“f”(字段 6)中。

解决方案:最终出现了内存在发送到线程套接字之前没有被复制的问题。当发布者发回时,它正在打包数据并更改路由器接收到的内容。在 C++ 端需要有一个 memcpy() 以便发送要在内部使用的数据。感谢所有的帮助。

0 投票
4 回答
4380 浏览

zeromq - 如何在 Windows 上设置 ZeroMQ 以使用 OpenPGM?

如何在 Windows 上设置 ZeroMQ 以使用 OpenPGM?