2009-11-03 168 views
0

我試圖編寫一個Python庫,它將實現特定聊天協議的客戶端。python聊天客戶端庫

我連接到服務器後,
我開始主循環,我從服務器讀取和處理接收到的命令,在這裏我需要調用回調函數(如on_messageon file_received等)。

我應該如何去實施?
應該爲每個回調函數啓動一個新線程嗎?也許一些回調需要一段時間才能返回,我會超時。
另外,
如果我從服務器讀取的主循環是在一個線程中,我可以從另一個線程寫入套接字(發送消息到服務器)?
還是有更好的方法? 謝謝。

回答

2

我會使用選擇模塊,或交替扭曲,但選擇是更便攜一點,在我的腦海裏有點pythonic。

6

對於這樣做的python應用程序,我不會使用線程。我會使用像Twisted這樣的框架。

該文檔有例子; here's a chat example

1

線程在這裏只是一個不必要的複雜因素,如果您不熟悉如何正確使用它們,將會導致不明確的錯誤。但是,asyncoreasynchat是達到同一目標的簡單路線。