我正在使用RabbitMQ.Net进行消息传递,我想测试不同的情况。在一种情况下,我想看看连接断开时会发生什么。在测试过程中如何强制连接断开?
以the "Hello World" example here为例,我想这样做:
我该如何执行第3步?
在这方面,RabbitMQ的行为已得到很好的定义,因此我不确定测试的重点是什么(该版本可能已经对此行为进行了自动测试。
如果将RabbitMQ设置为heartbeat,则在经过两个心跳间隔后,将拾取掉落的TCP套接字。如果不是这样,则在尝试进行下一个网络操作时,将提取失效的套接字。这是由于TCP的工作原理。
一旦拾取了丢弃的套接字,将触发应用程序连接关闭逻辑。这涉及发送连接关闭和通道关闭事件。我快速浏览了.NET client documentation,看来他们已经实现了一些自动恢复。您可能必须通读代码以查明它的确切功能,并且坦率地说,我不会相信它。我希望手动处理重新连接。