我正在尝试学习如何使用 Twisted 做一些事情,但我有点坚持一个概念:制作一个基本上在两个独立阶段进行通信的协议:首先是短暂的握手和身份验证,然后是实际工作。
我天真的方法是编写这样的协议:
def stringReceived(self, data):
if self.state == "authenticate":
handle_auth(data)
else:
handle_actual_work(data)
我很难弄清楚这样做的扭曲方式。以上正常吗?在我看来,编写一个进行身份验证的协议和另一个只处理经过身份验证的客户端的协议会更有意义,但我究竟该怎么做呢?
我查看了类似的问题Twisted:如何在初始连接时识别协议,然后委托给适当的协议实现?. 那里给出的解决方案归结为与我目前的方法基本相同。这真的是正确的方法吗?