问题标签 [jeromq]
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.
java - ZeroMQ 运行服务器 Java
我目前正在尝试开发一个服务器,该服务器基本上应该随时从未知数量的客户端获取传入数据。即系统将有多个客户端发送数据,而服务器的工作基本上只是收集数据并将其保存到数据库中。
现在我希望服务器连续运行。现在服务器只收到一个客户端并关闭。如果我说围绕接收和打印消息部分做一个 while(true)- 循环,它甚至不会做一次。
正如我可能理解的那样,REP REQ 不是最好的模式,让服务器获取传入数据的最佳模式是什么?
使用 Curve(又名 Ironhouse 模式),客户端需要拥有服务器证书,假设一个想要向服务器发送数据的新客户端应该如何访问服务器证书?我从 ZMQ 指南或其他站点中找到的所有示例都只是指本地的、通常是同一类的服务器-客户端应用程序,其中客户端只是访问证书,因为它们属于同一类……但这并不现实案子。
感谢所有答案、提示和建议。谢谢。
matlab - JeroMQ 订阅者 MATLAB
我在 Matlab 中导入了最新的 JeroMQ,我试图连接到运行 ZeroMQ 发布者的 C# 程序。
我没有收到任何消息,我确定发布者正在发送。由于似乎套接字已连接,我可能无法正确设置套接字选项。任何帮助表示赞赏。
java - 为 jeromq 运行 mvn 包时出错:“绑定无法分配请求的地址:连接”
我想在 Windows 10 上从 Matlab 和 MetaTrader 5 发送和接收数据。根据这篇文章,JeroMQ 是最简单的方法:
- 我从https://github.com/zeromq/jeromq克隆了 repo
- 我安装了maven
- 然后我进入存储库根目录并开始使用:mvn package 构建它,它产生了以下错误消息:
根据这些帖子,我尝试通过将 localhost 的 IP 配置设置为 127.0.0.1 来解决此问题:
- https://help.mulesoft.com/s/article/What-does-java-net-BindException-Cannot-assign-requested-address-mean
- ZMQError:无法分配请求的地址
这没有解决问题(相同的错误消息)。
我认为这与一些 IP 设置有关,但我是套接字通信的新手。我没有 Java 编程/调试经验。请帮我解决这个问题,这样.jar
文件就可以成功构建,我可以将它添加到我javaclasspath
的 Matlab 中。
否则:是否有(简单的)替代方法可以与其他程序(例如通过 ZeroMQ)建立 Matlab 套接字通信?
java - android 上的 Jeromq:没有虚拟方法 clear()Ljava/nio/ByteBuffer
我正在尝试将 jeromq 用于 android 项目。我需要连接到另一个经销商设备。这是我的代码:
在 connect 调用中,发生错误:
2019-09-26 16:59:53.033 18347-18379/? E/AndroidRuntime:致命异常:线程 4 进程:com.flir.flironeexampleapplication,PID:18347 java.lang.NoSuchMethodError:没有虚拟方法 clear()Ljava/nio/ByteBuffer;在类 Ljava/nio/ByteBuffer 中;或其超类('java.nio.ByteBuffer' 的声明出现在 /system/framework/core-oj.jar 中)在 zmq.Signaler.send(Signaler.java:97) 在 zmq.Mailbox.send(Mailbox.java :71) 在 zmq.Ctx.sendCommand(Ctx.java:517) 在 zmq.ZObject.sendCommand(ZObject.java:382) 在 zmq.ZObject.sendPlug(ZObject.java:185) 在 zmq.ZObject.sendPlug(ZObject .java:175) 在 zmq.Own.launchChild(Own.java:115) 在 zmq.SocketBase.addEndpoint(SocketBase.java:590) 在 zmq.SocketBase.connect(SocketBase.java:582) 在 org.zeromq.ZMQ $Socket.connect(ZMQ.java:2531) 在 com.flir。
我的环境:
- 杰罗姆克 0.5.2
- 执行代码的目标设备是 Android 8.1 (Oreo)
- 使用 JDK 1.8.0_66 / ndk r10e 在 Android Studio 中编译
知道有什么问题吗?非常感谢。
java - 如何在子服务器套接字关闭时制作 ZMQ pub 客户端套接字缓冲区消息
给定 2 个应用程序,其中应用程序 A 使用发布者客户端有争议地将数据流式传输到应用程序 B,应用程序 B 有一个子服务器套接字来接受该数据,我们如何在应用程序 A 中配置 pub 客户端套接字,以便当 B 不可用时(就像它正在重新部署,重新启动)A 缓冲所有未决消息,当 B 变为可用时,缓冲消息进入低谷并且套接字赶上实时流?
简而言之,当 SUB SERVER 不可用时,我们如何使 PUB CLIENT 套接字缓冲消息具有一定的限制?
PUB 客户端的默认行为是进入静音状态,但如果我们可以将其更改为限制大小的缓冲区,那就太好了,zmq 可以吗?还是我需要在应用程序级别进行...
我已经尝试在我的套接字中设置 HWM 和 LINGER,但如果我没记错的话,他们只负责慢消费者情况,我的发布者连接到订阅者,但订阅者太慢以至于发布者开始缓冲消息(hwm 将限制这些消息的数量)...
我正在使用jeromq
,因为我的目标是 jvm 平台。
android - 如何让 JeroMQ 与 Android Studio 一起工作?
我的过程:
安装 IntelliJ
创建新项目
使用 File>Project Structure>Global Libraries>org.zeromq:jeromq:0.5.1 添加 JeroMQ
在 src 中创建以下 java 文件:
发布者.java
订阅者.java
运行 publisher.java,然后是subscriber.java(同时)。两者都有效。
下载 Android Studio(我的版本 - 3.5.2)
创建新项目(为简单起见,基本活动、API 28/Android 9.0)。
修改项目设置:File>Project Structure>Modules>(Compile SDK Version 29, Build Tools version 29.0.2, Source Code Compatibility 1.8, Target Compatibility 1.8)
使用 Build>Edit Libraries and Dependencies>Dependencies>app>org.zeromq:jeromq:0.5.1 添加 JeroMQ
将以下类添加到 app>java>(top 文件夹):
订阅者.java
(注意:使用 10.0.2.2 连接到 localhost,如此处所示(https://developer.android.com/studio/run/emulator-networking))。
编辑 MainActivity.java 文件中的 onCreate 方法,如下所示:
创建 android 虚拟设备(Pixel 2 API 28、x86)。启动它。
当 publisher.java 仍在 PC 上运行时,单击“调试应用程序”。出现第一行打印的“开始循环”,但没有出现其他消息。大约一分钟后出现以下错误(这不是完整的输出,因为这篇文章的正文是有限的):
任何线索我做错了什么?
matlab - 在 Matlab 中进行接收时,JeroMQ 订阅者连接中断
在 Matlab 中使用 JeroMQ,当我尝试发送recv
消息时,我的订阅者连接断开。我已经用 Wireshark 验证了这一点。我还注意到 TCP 连接的关闭是由我的订阅端口而不是发布端口发起的。
我不确定它是否会有所帮助,但我已经使用它进行了调查,
但 Matlab 报告 ZMQ_TCP_KEEPALIVE 是一个无法识别的函数或变量。
我感谢这个线程上的人们让我在 Matlab 中正确地使用 JeroMQ。
java - ZeroMQ 无法发布消息
我试图让 ZMQ 发布者和订阅者工作的基本实现,但它默默地失败了。我正在使用 JeroMQ 0.5.2(当前版本)和 Java 8。
考虑以下官方测试文件: https ://github.com/zeromq/jeromq/blob/master/src/test/java/org/zeromq/PubSubTest.java
我已将第一个测试 (testRaceConditionIssue322) 全部复制到一个新的主类中并运行它。发布者绑定到端口,并声称发送每条消息,但接收者没有收到一条消息。添加日志表明订阅者在发布者发送消息之前认为自己已被订阅。
我已经在两台计算机上尝试过这个,以及使用不同的代码,每次都是相同的最终结果。是什么赋予了?
zeromq - Minimizing ZeroMQ round trip latency
My question is about minimizing the latency between a ZMQ client and server I have the following modified Hello World ZMQ (JeroMQ 0.5.1)
and client:
I'm running the server and the client over a network with latency (160ms round trip). I create the latency using tc on both the client and the server:
Now when I run java -jar client.jar 192.168.181.3 5555 100000
I get the following output:
which means that as we increase the size of the message, it takes more round trips to send the message and receive the ack (you can play with the message size to see for yourself). I was wondering what I need to do to prevent that from happening, that is: send everything in one go and minimize the latency to the roundtrip time.
Note: In my original application, I'm using a REQ-ROUTER pattern as I have multiple clients, but the issue with the latency and large messages lingers on
java - ZMQ (Jeromq) - 套接字发送文档中缺少参数
我目前正在尝试修改简单的 hwclient/hwserver 示例,以将具有预定义大小的字节数组发送到服务器。我已经看到基本上功能以以下形式给出:
但似乎没有关于参数的文档int off
。谁能告诉我,这个参数有什么作用?
提前致谢