Twisted irc python bot - 缓冲消息

时间:2012-05-31 11:16:17

标签: python twisted irc bots

  

"为什么我使用transport.write发送的数据需要很长时间才能到达连接的另一端?"

     

Twisted只能在您放弃对反应堆的执行控制后发送数据。例如,如果您有一个无限循环将数据写入传输,则实际上永远不会发送数据,因为控制永远不会离开您的代码并返回到反应堆。"

我在扭曲的FAQ中发现了这一点,这正是我的问题所在。有没有办法解决这个问题,所以我可以立即发送消息而不是等待循环完成?

1 个答案:

答案 0 :(得分:4)

没有。您无法立即发送消息。控件必须返回事件循环。幸运的是,你真正试图解决的问题(从问题的评论推断),限制你发送的消息,不需要能够做到这一点。相反,请在循环中停止使用time.sleep并开始使用reactor.callLater来延迟代码的执行。或者使用IRC API的功能为您做这些事情(您似乎已经发现了lineRate)。

相关问题