如何在RabbitMq的node-amqplib库中检查连接是否存活?

8

我正在使用rabbitMq node-amqplib库编写生产者和消费者,我担心突然丢失服务器连接,怎样才能检查连接是否存活?


通过RabbitMQ Web UI服务器连接。您可以使用插件实现此操作。这可能会有所帮助: https://www.rabbitmq.com/management.html 在那里,您可以查看生产者和消费者之间的绑定关系。 - Zhivko.Kostadinov
2个回答

4

非常感谢您的快速回复,还有一个事情需要提到,我能否通过使用心跳或其他独特的方式保持与服务器的连接? - mayur
你只能通过心跳来保持连接(这是RabbitMQ的工作方式)。请注意,您发送或接收的每条消息也都算作一个心跳。因此,如果您发送任意消息,则连接将保持活动状态。 - Jesferman

0

有几种方法可以做到这一点:

一种方法是使用心跳和事件监听器,类似于 conn.on('close', (err) => { this.connected = false; } )

或者你可以进入连接对象。这里存在风险,因为升级到amqplib可能会破坏它,因为它不是官方接口的一部分: const connClosed = conn.connection['expectSocketClose']

连接对象中还有其他属性,也可以告诉您它是否关闭,例如流可写状态(可能是错误标志)或心跳对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接