簡體   English   中英

在 Matlab 中接收時 JeroMQ 訂閱者連接中斷

[英]JeroMQ subscriber connection breaks when recv-ing in Matlab

在 Matlab 中使用 JeroMQ,當我嘗試recv消息時,我的訂閱者連接斷開。 我已經用 Wireshark 驗證了這一點。 我還注意到 TCP 連接的關閉是由我的訂閱端口發起的,而不是發布端口。

javaclasspath('jeromq-0.5.1.jar')
import org.zeromq.*;

ctx = zmq.Ctx();
socket = ctx.createSocket(ZMQ.SUB);
socket.connect('tcp://127.0.0.1:5996')
message = socket.recv(1) %this is when the connection gets dropped

Wireshark 屏幕截圖顯示連接正在關閉

我不確定它是否有幫助,但我已經調查過使用這個,

socket.setSocketOpt(ZMQ.ZMQ_TCP_KEEPALIVE,1)

但 Matlab 報告 ZMQ_TCP_KEEPALIVE 是一個無法識別的函數或變量。

我很感激這個線程上的人們讓我在 Matlab 中正確地開始使用 JeroMQ。

我做了更多的研究,並考慮了Github 上一些朋友的建議。 原來我的套接字直到后來在我的close()函數的代碼中才close() 這是我為希望開始在 Matlab 中使用 JeroMQ 的其他人准備的工作代碼。 似乎其他帖子上的一些代碼已經過時了。

javaclasspath('jeromq-0.5.1.jar')
import org.zeromq.*;

%subscribe to ZMQ feed
context = ZContext();
socket = context.createSocket(ZMQ.SUB); 
success = false;
while(~success)
    success = socket.connect('tcp://127.0.0.1:5996');
end
socket.subscribe("");
socket.setTCPKeepAlive(1);

%receive a message
message = socket.recv(0); %nonblocking receive uses argument (1)

%when done
socket.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM