我正在尝试编写一个 Python 库来实现某个聊天协议的客户端。
连接到服务器后,
我启动主循环,从服务器读取并处理接收到的命令,在这里我需要调用回调函数(如on_message
oron file_received
等)。
我应该如何实施呢?
是否应该为每个回调函数启动一个新线程?因为也许一些回调需要一些时间才能返回,我会超时。
另外,
如果我从服务器读取的主循环在一个线程中,我可以从另一个线程写入套接字(向服务器发送消息)吗?
还是有更好的方法?谢谢。
我正在尝试编写一个 Python 库来实现某个聊天协议的客户端。
连接到服务器后,
我启动主循环,从服务器读取并处理接收到的命令,在这里我需要调用回调函数(如on_message
oron file_received
等)。
我应该如何实施呢?
是否应该为每个回调函数启动一个新线程?因为也许一些回调需要一些时间才能返回,我会超时。
另外,
如果我从服务器读取的主循环在一个线程中,我可以从另一个线程写入套接字(向服务器发送消息)吗?
还是有更好的方法?谢谢。
我会使用 select 模块,或者交替使用,但是 select 更便携,而且在我看来更 Pythonic。
线程在这里只是一个不必要的复杂性,如果您不熟悉如何正确使用它们,则会导致难以理解的错误。然而, asyncore或asynchat是通向同一目标的简单途径。