gpt4 book ai didi

c++ - 带有 NodeJS 订阅者的 ZMQ 发布者服务器

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:57 25 4
gpt4 key购买 nike

我想做的是拥有一个具有发布者角色的 C++ ZeroMQ 服务器并连接 NodeJS 订阅者客户端。

我能够让 nodeJS 服务器 + nodejs 客户端示例正常工作,但我无法使用 C++ 连接它。

C++代码:

#include "zmq.hpp"

// Convert string to 0MQ string and send to socket
auto s_send(zmq::socket_t & socket, const std::string & string) {
zmq::message_t message(string.size());
memcpy(message.data(), string.data(), string.size());

return socket.send(message, zmq::send_flags::none);
}

int main() {
std::cout << "Hello World!\n";

zmq::context_t ctx(1);
zmq::socket_t sock(ctx, ZMQ_PUB);
sock.bind("tcp://*:5555");

Sleep(1000);

while (true) {
s_send(sock, "Hello from the publisher.");
Sleep(1000);
}
}

NodeJS 代码:

var zmq = require('zeromq');
var sock = zmq.socket('sub');

sock.connect("tcp://127.0.0.1:5555");
console.log("Subscriber connected to port 5555");

sock.on('message', function(msg){
console.log('work: %s', msg.toString());
});

知道我做错了什么吗?是否有关于从不同语言互连 ZeroMQ 的教程?我只能找到在通信双方使用相同技术的示例。

最佳答案

Q : Any ideas what I am doing wrong?

ZeroMQ SUB-archetype 什么也接收不到,除非它明确订阅了一些“Topic”(“”-是合法的"everything") 或者在 PUB-side 和 SUB-side,给定 ZMQ_INVERT_MATCHING-flag self 解释此类订阅将如何开始工作。

...was able to get nodeJS server + nodejs client examples working ... no chance ... no no
kein moeglichkeit - nein nein ...

提示:您的代码没有执行任何一项必需的订阅设置。 SUB-archetype 默认状态从字面上看没有订阅任何内容,因此代码无法使其正常工作。


Q : but I am not able to connect it using C++

好吧,在有人声称 C++/API 有问题之前,最好先测试并记录所有这些潜在的错误状态:

MCVE 公式化的问题必须可以重新测试,否则问题在 Stack Overflow 中不存在。

ZeroMQ 拥有精心设计的错误报告工具,因此在每一步中,都可以读取错误状态并根据接收到的详细原因报告错误状态:{ EINVAL |学期 | socks |中断 | ... 如 ZeroMQ 源代码中所定义(并在 ZeroMQ API 文档中有详细记录,逐个版本)。

关于c++ - 带有 NodeJS 订阅者的 ZMQ 发布者服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57925861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com