所以我正在实现一个带有twisted(python-loggingserver)的日志服务器,我向服务器添加了简单的身份验证。如果身份验证失败,我想关闭与客户端的连接。日志服务器代码中的类已经有一个名为handle_quit()的函数。这是关闭连接的正确方法吗?这是一段代码:
if password != log_password:
self._logger.warning("Authentication failed. Connection closed.")
self.handle_quit()
答案 0 :(得分:2)
如果您所指的handle_quit
消息为this one,则应该可以正常使用。该方法唯一的作用是self.transport.loseConnection()
,它会关闭连接。你也可以自己做self.transport.loseConnection()
,这将完成同样的事情(因为它当然是同样的事情)。我会通过考虑失败的身份验证是否只是关闭连接,或者是否应该始终以与处理退出命令相同的方式来处理这两个选项。在当前的代码中,这没有任何区别,但您可能会想到quit命令在将来某个时候有额外的处理(清理一些资源或其他东西)。