Twistedを使って何かをする方法を学ぼうとしていますが、基本的に2つの別々のフェーズで通信するプロトコルを作成するという1つの概念に固執しています。最初に短いハンドシェイクと認証、次に実際の作業です。
私の素朴なアプローチは、次のようなプロトコルを作成することです。
def stringReceived(self, data):
if self.state == "authenticate":
handle_auth(data)
else:
handle_actual_work(data)
私はこれを行うためのねじれた方法を理解するのに苦労しています。上記は正常ですか?認証を行うプロトコルと、認証されたクライアントのみを処理するプロトコルを作成する方がはるかに理にかなっているように思われますが、正確には、どのようにそれを行うのでしょうか。
同様の質問Twistedを調べました。最初の接続でプロトコルを識別してから、適切なプロトコルの実装に委任するにはどうすればよいですか?。そこで与えられた解決策は、基本的に私の現在のアプローチと同じになります。これは本当に適切なアプローチですか?