我想知道是否有办法配置RabbitMQ来关闭丢失的连接,无论心跳如何 .

我的问题是,如果在heartbeat设置为0且连接丢失(如禁用网络接口)的情况下打开连接,服务器会保持连接永久打开,我知道TCP超时是11分钟,但连接甚至没有关闭几个小时以后 .

我确实为服务器添加了keepalive配置,但结果相同(我正在使用SSL) .

有没有办法配置服务器关闭此连接,无论心跳配置如何?

或者我可以拒绝低心跳配置的连接?

环境细节:

OS ubuntu服务器14.04

RabbitMQ服务器版本3.5.4

组态:

{tcp_listen_options, [binary,
                     {packet,        raw},
                     {reuseaddr,     true},
                     {backlog,       128},
                     {nodelay,       true},
                     {exit_on_close, true},
                     {keepalive,     true}]}

{ssl_options, [{cacertfile,           "/etc/rabbitmq/certs/cacert.pem"},
                  {certfile,             "/etc/rabbitmq/certs/cert.pem"},
                  {keyfile,              "/etc/rabbitmq/certs/key.pem"},
                  {verify,               verify_peer},
                  {keepalive,            true},
                  {fail_if_no_peer_cert, false}]},