重新连接到扭曲的不同地址?
Reconnect to different address in twisted?
我有一台服务器,它向我的客户端发送备份服务器的地址,以防它出现故障。在服务器端,备份服务器是 运行。在客户端,一旦连接丢失,我就无法让客户端连接到备份服务器。我知道我必须将连接逻辑添加到 twisted.internet.protcol.Protocol
中的以下回调
class MyProtocol(Protocol):
def connectionLost(self, reason):
print 'Connection Lost'
print 'Trying to reconnect'
# How do I reconnect to another address say at localhost:8001
f = Factory()
f.protocol = MyProtocol
reactor.connectTCP("localhost", 8000, f)
reactor.run()
如果 localhost:8000
上的服务器停止,它将触发 connectionLost(..)
方法。在这种方法中,我想将逻辑连接到备份主机,在这种情况下是说 localhost:8001
,但可以是任意的。我该怎么做
这个?
编辑:
我想在不使用 ReconnectingClientFactory
的情况下执行此操作
class MyProtocol(Protocol):
def connectionLost(self, reason):
print 'Connection Lost'
print 'Trying to reconnect'
reactor.connectTCP(
"localhost", 8001, Factory.forProtocol(MyProtocol),
)
reactor.connectTCP("localhost", 8000, Factory.forProtocol(MyProtocol))
reactor.run()
我有一台服务器,它向我的客户端发送备份服务器的地址,以防它出现故障。在服务器端,备份服务器是 运行。在客户端,一旦连接丢失,我就无法让客户端连接到备份服务器。我知道我必须将连接逻辑添加到 twisted.internet.protcol.Protocol
class MyProtocol(Protocol):
def connectionLost(self, reason):
print 'Connection Lost'
print 'Trying to reconnect'
# How do I reconnect to another address say at localhost:8001
f = Factory()
f.protocol = MyProtocol
reactor.connectTCP("localhost", 8000, f)
reactor.run()
如果 localhost:8000
上的服务器停止,它将触发 connectionLost(..)
方法。在这种方法中,我想将逻辑连接到备份主机,在这种情况下是说 localhost:8001
,但可以是任意的。我该怎么做
这个?
编辑: 我想在不使用 ReconnectingClientFactory
的情况下执行此操作class MyProtocol(Protocol):
def connectionLost(self, reason):
print 'Connection Lost'
print 'Trying to reconnect'
reactor.connectTCP(
"localhost", 8001, Factory.forProtocol(MyProtocol),
)
reactor.connectTCP("localhost", 8000, Factory.forProtocol(MyProtocol))
reactor.run()