![](/img/trans.png)
[英]zeromq (zmq) missing messages with c++ publisher and python subscriber
[英]ZMQ publisher server with NodeJS subscriber
我想做的是擁有一個具有發布者角色的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的教程? 我只能在通訊的兩端找到使用相同技術的示例。
問 :有什么想法我做錯了嗎?
ZeroMQ SUB
-archetype不會接收任何內容,除非它明確地訂閱了一些“ Topic ”(“-”代表“ everything”是合法的),或者它在PUB
端和SUB
端,給定一個ZMQ_INVERT_MATCHING
標志,可以自我解釋這種訂閱將如何開始工作。
...能夠使nodeJS服務器+ nodejs客戶端示例正常工作 ...沒有機會...沒有
kein moeglichkeit-nein nein ...
提示:您的代碼沒有執行任何一項必需的訂閱設置。 SUB
-archetype默認狀態從字面上看是什么都沒有訂閱,因此代碼無法使它正常工作。
問 : 但是我無法使用C ++進行連接
好吧,在聲稱C ++ / API有問題之前,最好先測試並記錄所有這些潛在的錯誤狀態:
MCVE提出的問題必須是可重新測試的,否則該問題在StackOverflow中不存在。
ZeroMQ具有良好的精雕細琢錯誤報告工具,所以在每一個步驟,可以讀取錯誤狀態,並報告按照接收的詳細原因抵達到任何種類的定義錯誤狀態: { EINVAL | ETERM | ENOTSOCK | EINTR | ... }
{ EINVAL | ETERM | ENOTSOCK | EINTR | ... }
{ EINVAL | ETERM | ENOTSOCK | EINTR | ... }
在ZeroMQ來源中定義(並在ZeroMQ API文檔中有詳細說明,逐個版本)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.