python聊天客户端库

问题描述:

我试图编写一个Python库,它将实现特定聊天协议的客户端。python聊天客户端库

我连接到服务器后,
我开始主循环,我从服务器读取和处理接收到的命令,在这里我需要调用回调函数(如on_messageon file_received等)。

我应该如何去实施?
应该为每个回调函数启动一个新线程吗?也许一些回调需要一段时间才能返回,我会超时。
另外,
如果我从服务器读取的主循环是在一个线程中,我可以从另一个线程写入套接字(发送消息到服务器)?
还是有更好的方法? 谢谢。

我会使用选择模块,或交替扭曲,但选择是更便携一点,在我的脑海里有点pythonic。

对于这样做的python应用程序,我不会使用线程。我会使用像Twisted这样的框架。

该文档有例子; here's a chat example

线程在这里只是一个不必要的复杂因素,如果您不熟悉如何正确使用它们,将会导致不明确的错误。但是,asyncoreasynchat是达到同一目标的简单路线。