重新打开响应服务器时,NetMQ请求/响应有时会失败

问题描述

我正在尝试使用NetMQ从“请求/响应”模式发送和接收消息。 我想通过重新打开响应服务器来模拟网络断开连接。 重新打开响应服务器时,消息有时会失败。

我在做什么错?任何信息或协助将不胜感激。

请求客户端:

RequestSocket client = new RequestSocket();
client.Connect(address);
while(true)
{
    client.SendFrame(dataBytes);
    client.ReceiveFrameString();
    Thread.Sleep(100);
}

还尝试了使用Try *的Request Client,并在一段时间内未收到任何响应的情况下重新连接:

bool success = false;
while(true)
{
    success = client.TrySendFrame(TimeSpan.FromMilliseconds(500),dataBytes);
    if (success)
    {
        break;
    }
    Thread.Sleep(100);
}

int count = 0;
success = false;
while(true)
{
    success = client.TryReceiveFrameString(TimeSpan.FromMilliseconds(500),out string s);
    if (success)
    {
        break;
    }
    count++;
    if (count >= 50)
    {
        client.Disconnect(address);
        client.Connect(address);
        break;
    }
    Thread.Sleep(100);
}

响应服务器(手动再次关闭并打开程序):

ResponseSocket server = new ResponseSocket(connection);
while(true)
{
    if (server.TryReceiveFrameBytes(TimeSpan.FromMilliseconds(300),out byte[] dataBytes))
    {
        server.SendFrame("Response");
    }
    Thread.Sleep(100);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...