通过HTTP代理连接Twisted IRCClient
我正在玩Twisted这个库,想把一个旧的Java IRC机器人用Python(2.7)重写。我是基于IrcLogBot示例来做的。
我需要通过一个不需要认证的HTTP代理连接到IRC服务器,但在irc.IRCClient或者reactor.connectTCP中似乎都没有支持这个功能。我是不是找错地方了?有没有办法把我的连接包裹在某种代理隧道里?
提前感谢任何帮助!
1 个回答
3
如果你连接的HTTP代理支持CONNECT请求,那就可以实现这个功能。
这里有一个示例,可以用来通过HTTP代理建立SSH连接。这个方法也应该适用于IRC连接。
使用这个示例代码,你应该能够做到类似这样的事情:
proxy = HTTPProxyConnector('myhttpproxy.server', 8080)
proxy.connectTCP('myirc.server', 6667, MyTwistedIRCClientFactory())
不过,处理服务器超时的问题还有一些需要解决的地方,特别是要让它更顺畅和快速。不过,如果你加上某种定期的应用程序或底层协议的ping请求,就能防止两个服务器因为超时而断开连接。