Twisted ReconnectingClientFactory - Auto Reconnect 또는 명시 적으로 Connector.connect ()를 호출하십시오.

StackOverflow https://stackoverflow.com//questions/20014776

문제

트위스트 ReconnectingClientFactory를 사용할 때 연결이 손실되면 ClientConnectionLost 메소드 내에서 connector.connect ()를 호출하거나 자동으로 발생합니까?

답변은 결국, 다시 연결 클럽 공장 이지만 꼬인 문서는 여기 궁금해합니다 :

"connector.connect ()를 호출하는 것이 유용 할 수 있습니다. 이렇게하면 다시 연결됩니다."

'유용한 용어의 문구와 사용은 기본 클라이언트 팩토리에 대한 API 문서가 똑같은 것을 말하지 않기 때문에 질문으로 이어집니다.

최대의 대답은 정확하지만 추가 연구가 끝나면 '교정자'답변이 아래와 같습니다 :

def clientConnectionLost(self, connector, reason):
    # do stuff here that is unique to your own requirements, then:
    ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
.

이를 통해 응용 프로그램에서 요구하는 전문 사항을 수행 한 다음 꼬인 코드를 호출하여 재시도 ()를 돌보는 것을 허용합니다.

도움이 되었습니까?

해결책

내 오래된 대답이 완전히 정확하지 않았습니다.대신 이렇게하십시오 :

def clientConnectionLost(self, connector, reason):
    # do stuff here that is unique to your own requirements, then:
    ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
.

이렇게하면 응용 프로그램에서 요구하는 전문화 된 것들을 할 수 있습니다. 그리고 꼬인 꼬임을 허용하기 위해 공장 코드로 전화하십시오. 재시도 ()를 호출하십시오.

다른 팁

ReConnectingClientFactory를 호출합니다. ClientConnectionLost (자체, 커넥터, 이유)는 다음과 같이 할 수있는 권리입니다.

  1. 는 self.retry를 호출하기 전에 'self.continuetrying'을 확인합니다 ( 연결으로 인해 연결이 손실되었을 수 있으므로 키가 있습니다. 'stoptrying ()'
  2. 은 self.connector를 연결된 커넥터로 설정합니다.
  3. 호출 self.retry () (전달 된 커넥터가 부족하여 # 2에서 self.connector를 사용하는 경우)
  4. 및 재 연결 경로에서 더 많은 작업을 필요로하는 미래의 ReconnectingClientFactory 구현에 변경이있는 경우 코드가 변경되지 않고 자동으로 처리됩니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top