2
我試圖用這個工廠編寫一個XMPP客戶端。現在我的程序在短時間內只需要這個連接。我如何讓工廠停止重新連接嘗試?不幸的是stopTrying不起作用。我必須在斷開連接之前斷開連接嗎?停止ReconnectingClientFactory(XmlStreamFactory)
任何幫助,將不勝感激:)
我試圖用這個工廠編寫一個XMPP客戶端。現在我的程序在短時間內只需要這個連接。我如何讓工廠停止重新連接嘗試?不幸的是stopTrying不起作用。我必須在斷開連接之前斷開連接嗎?停止ReconnectingClientFactory(XmlStreamFactory)
任何幫助,將不勝感激:)
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
後,它將停止進行此類嘗試。