我基本上是这样做的:
- 有一个 REQ 套接字,连接到一个 REP(心跳)
- 如果连接超时(
setTimeOut
),增加一个计数器 - 如果计数器大于给定阈值,则将另一侧标记为 DOWN(不是心跳)
- 如果对方响应,则重置计数器。
- 重复
这有一个问题,当发生超时时,下一个send
方法会导致:
Exception in thread "Thread-1" org.zeromq.ZMQException: Operation cannot be accomplished in current state(0x9523dfb)
我不知道该怎么做,我已经看到这有点解决了,Poller
但它似乎有点矫枉过正。这里最好的方法是什么?重新创建套接字?尝试不同的策略(可能是推拉?)。
谢谢你。