【发布时间】:2023-03-16 20:25:01
【问题描述】:
我想用 asyncio 创建一个ReconnectingClientFactory。特别是处理客户端启动时服务器不可用的情况,在这种情况下ReconnectingClientFactory 将继续尝试。这是asyncio.events.create_connection 不做的事情。
具体来说:
EchoClient 示例就可以了。 关键是如何建立联系。
factory = EchoClientFactory('ws://127.0.0.1:5678')
connectWS(factory)
在 twisted 版本的情况下,ReconnectingClientFactory。
对比
factory = EchoClientFactory(u"ws://127.0.0.1:5678")
factory.protocol = SecureServerClientProtocol
loop = asyncio.get_event_loop()
# coro = loop.create_connection(factory, 'ws_server', 5678)
coro = loop.create_connection(factory, '127.0.0.1', 5678)
loop.run_until_complete(asyncio.wait([
alive(), coro
]))
loop.run_forever()
loop.close()
或与asycnio 版本类似。
问题在于,在 asyncio 版本中,连接是由 asyncio.events.create_connection 建立的,如果服务器不可用,它就会失败。
如何调和两者?
非常感谢
【问题讨论】:
-
请澄清。你到底想达到什么目标,什么是足够的?您的问题目前至少涉及三个(可能不同)的问题。
-
嗨 Petri,我想用 asyncio 创建一个 ReconnectingClientFactory,它可以处理当客户端通过等待连接启动时服务器不可用的情况。这足够具体吗?干杯
标签: python python-3.x python-asyncio autobahn twisted.internet