我正在尝试使用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);
}