我尝试使用这个提到的工厂编写一个XMPP客户端。现在我的程序在短时间内只需要这个连接。如何让工厂停止重新连接尝试?不幸的是,stopTrying不起作用。我以前是否必须断开正在运行的连接?
任何帮助将不胜感激:)
答案 0 :(得分:3)
ReconnectingClientFactory.stopTrying
确实有用。任何时候你有这样的问题,你不应该只说“不工作”。您应该解释您的期望,给出您正在尝试的代码的最小示例,并解释其行为与您的期望有何不同。
对于这种情况,这里有一个例子,演示stopTrying
如何满足我的期望,即在调用之后,不再进一步尝试建立连接:
from twisted.internet.protocol import ReconnectingClientFactory
from twisted.internet import reactor
from twisted.python.log import startLogging
from sys import stdout
def main():
startLogging(stdout)
f = ReconnectingClientFactory()
reactor.callLater(10, f.stopTrying)
reactor.connectTCP('localhost', 12345, f)
reactor.run()
if __name__ == '__main__':
main()
这将永远运行,但是在运行的前10秒内,它将进行新的连接尝试(全部失败)。调用stopTrying
后,它将停止进行此类尝试。