我想知道使用Proton或更佳的代理状态检查连接状态的正确方法。关键是要了解服务是否可用或网络是否断开。问题在于,像“ 0.0.0.0:0”这样的IP地址将在下面的代码中返回True,而像10.10.10.10:1
这样的地址将无限期地挂起。我想更好地了解Proton如何在内部(通过设计)处理这些连接,以及是否可以通过python实现检查可用性,连接状态等。
任何帮助将不胜感激。
from proton.handlers import MessagingHandler
from proton.reactor import Container
def main():
print(itcm_status())
def itcm_status():
try:
# this hangs
Container(TestConnection("10.10.10.10:1", "bogus_queue")).run()
running = True
except Exception as e:
print(str(e))
running = False
return running
class TestConnection(MessagingHandler):
def __init__(self, server, address):
super(TestConnection, self).__init__()
self.server = server
self.address = address
def on_start(self, event):
conn = event.container.connect(self.server)
conn.close()
if __name__ == "__main__":
main()