You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

stomp.Connection() timeout参数不符合预期问题咨询

概述

使用stomp.Connection(timeout=5)时出现意外断开问题:成功建立连接后,连接仍会在5秒后终止,这与Python socket在超时后保持连接的行为形成对比。

问题详情

本地运行activeMQ,已确认连接成功建立。

据了解,stomp.Connection()的timeout参数仅应作用于初始连接阶段。例如使用stomp.Connection(timeout=5)时,预期行为是若5秒内无法建立初始连接则抛出异常。

但实际观察到的情况是,即便连接成功建立且ActiveMQ仍可用,连接仍会在5秒后终止。

代码示例

运行以下代码时,预期timeout参数仅作用于初始连接,若5秒内建立连接则应保持连接。但终端显示连接约5秒后断开(初始的False应为连接未完全建立导致)。

import stomp
import time

conn = stomp.Connection(timeout=5)
conn.connect('localhost', 61613)

while True:
    message = "Hello, world!"
    print(f"Sent message: {message}")
    print(conn.is_connected())
    time.sleep(1)

若使用Python标准库socket编写类似客户端代码(服务器运行中),超时后连接仍会保持。

import socket
import time

def client_program():
    host = "localhost"  
    port = 5000

    client_socket = socket.socket()
    client_socket.connect((host, port)) 
    client_socket.settimeout(5)

    while True:
        if client_socket.fileno() == -1:
            print("Connection is closed.")
            break
        else:
            print("Connection is kept preserved.")
        time.sleep(1)

if __name__ == '__main__':
    client_program()
疑似原因

可能的原因包括:

  • 代码问题(代码很简单,但问题出在哪?)
  • ActiveMQ问题
  • TCP保活机制问题
  • 或是真的是bug???

感谢维护优秀的库,期待您的回复。

内容的提问来源于stack exchange,提问作者live-today

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 08:13:30