我正在研究一个基本的扭曲应用程序,以帮助我了解反应堆如何与多个服务一起工作。我想让我的脚本做的基本概述如下:
我的脚本将同时是Web服务器和IRC客户机。每次向Web服务器发出请求时,脚本都应该在IRC上说一条消息。
我有一个IRC客户机在工作,一个twisted.web服务器在工作,并且可以在一个脚本中同时运行它们。当我试图让它们相互作用时,问题就出现了。以下是启动服务器/客户端的方法:
import sys
from twisted.words.protocols import irc
from twisted.web import server, resource
from twisted.internet import protocol, reactor
chan = sys.argv[1]
site = server.Site(Home())
reactor.listenTCP(8080, site)
reactor.connectTCP('irc.freenote.net', 6667, IRCBotFactory(chan))
reactor.run()
使用上面的代码,我的客户机的两个部分同时运行,没有问题。但是,当我试图让IRC客户机根据HTTP请求向服务器发送消息时,我意识到我实际上没有引用IRCBOT入口,因为我使用IRCBotFactory启动了reactor,并让twisted处理实际bot对象的初始化。
有没有一种方法可以让工厂的所有子实例都处于扭曲状态,或者有没有其他方法可以让我启动IRC客户机(可能绕过工厂,只使用一个IRCBot实例)?