ZMQ 丢失订阅连接

ZMQ Losing subscribe connection

我正在使用 ZMQ 发布和多个 subscribe.Am 每 10 次发布一次 sec.At 首先所有订阅工作正常。但是后来连接断开了。

如何在没有 broken.Am 使用 zmq npm 2.15.0 版本的情况下保持连接。

ZeroMQ L3 级连接维护隐藏 "inside" 或 "behind" 已发布 API 并在后台运行。

每当出现一些间歇性错误时,"so-far-connected" 对等方的双方 Context()-实例都会(内部)给予应有的注意并尝试重新建立他们的视线( LoS ),根据某些传输的需要。

最好重新阅读 { .setsockopt() | .getsockopt() } 方法的文档 API 详细信息,其中许多参数会影响 LoS 的实际重建方式 "inside" 内部服务端连接维护。

可能会从试验 ZMQ_HEARTBEAT_IVL != 0 和配置 ZMQ_HEARTBEAT_TIMEOUTZMQ_HEARTBEAT_TTL 值中得到启发。

感谢您的回答,现在已使用此代码修复了问题

const zmq = require("zmq");
const sock = zmq.socket("sub");
sock.setsockopt(zmq.ZMQ_TCP_KEEPALIVE, 1);
sock.setsockopt(zmq.ZMQ_TCP_KEEPALIVE_IDLE, 300);
sock.setsockopt(zmq.ZMQ_TCP_KEEPALIVE_CNT, 10)
sock.setsockopt(zmq.ZMQ_TCP_KEEPALIVE_INTVL, 300);
sock.connect("tcp://mdata-pub-01:3000");