在NetMQ中以RouterDealer模式检测断开连接的客户端

时间:2018-10-14 09:23:10

标签: netmq

我正在将一些clrzmq4代码移植到NetMQ,以便可以使一些代码在netcore上运行。

似乎缺少的是能够有效监视路由器(服务器)套接字上断开连接的事件的功能。

在ZeroMQ中,您可以在监视器中以及客户端的初始消息中获取fd(FileDescriptor),并将两者绑定在一起,以便我的服务器可以保留活动客户端的列表。

在NetMQ中,我可以使用NetMQMonitor获取断开连接的事件,但我得到的只是底层的AsyncSocket,与客户端成功连接/接受时发送的客户端身份无关。

由于收到的NetMQMessage / NetMQFrame与套接字没有真正的(公共)关联,因此我的客户列表不断增长。

我尝试过的事情

  • 发送***-我可能希望“死”客户端发生异常,但没有一个异常。

  • TrySend ***返回终止的客户端将返回true,与连接的客户端相同。

我觉得我这里必须缺少一些非常简单的东西-如何检测断开连接,以便我可以清除活动的客户端身份列表,而不会遇到应用程序中网络层不断变慢的情况。

如果认为有帮助,我可以发布一些代码。

任何建议,我们将不胜感激。

0 个答案:

没有答案