저는 Twisted로 물건을 만드는 법을 배우려고합니다. 하나의 개념에 조금 갇혀 있습니다. 프로토콜을 기본적으로 두 단계로 나누어서 작성합니다. 먼저 짧은 핸드 셰이크와 인증, 실제 작업.Twisted에서 프로토콜의 두 단계를 분리하는 방법은 무엇입니까?
def stringReceived(self, data):
if self.state == "authenticate":
handle_auth(data)
else:
handle_actual_work(data)
내가이 일의 트위스트 방식으로을 알아내는 힘든 시간을 보내고 있습니다 :
내 본래의 접근법은이 같은 프로토콜을 작성하는 것입니다. 이상은 정상입니까? 인증을 수행하는 프로토콜 하나와 인증 된 클라이언트만을 다루는 프로토콜을 작성하는 것이 훨씬 더 합리적 일 것이라고 생각되지만, 정확히 어떻게 그렇게 할 것입니까?
비슷한 질문을 Twisted: How can I identify protocol on initial connection, then delegate to appropriate Protocol implementation?에서 보았습니다. 거기에 주어진 해결책은 현재의 접근 방식과 기본적으로 동일합니다. 이것은 정말로 적절한 접근입니까?
비틀림에 익숙하지 않은 이유는 단순히 비단뱀을 쓰는 것과는 달리 필수적인 꼬인 이디엄을 놓치고있는 것을 알기가 어려울 수 있기 때문입니다. 그런 이유로 누군가는 차임을 경험하는 것이 그러한 대접이 될 수 있습니다. 감사! – porgarmingduod
함수 이름을 문자열로 저장하고 모든 추가 작업을 수행해야하는 이유는 무엇입니까? 'self.state'에 데이터를 처리하는 함수를 저장하고'self.state (data)'를할까요? – detly