我正在尝试在事件计算机的顶部构建一个系统,该系统将检测TCP连接何时失败,并将测试是否可以触发重新连接。我已经浏览了所有的eventmachine代码,但似乎无法找到连接回调的位置,无论是在执行中还是在重新连接时。即使我在代码中设置了时间,挂起连接上也没有回调,如果我尝试重新启动重新连接,则无法获得有关连接是成功还是失败的反馈。我正在用它来连接有效的telnet接口。
EventMachine.run do
c = EventMachine.connect "10.8.1.99",5000,ConnectInterface
c.pending_connect_timeout = 10
端
非常感谢任何帮助。
答案 0 :(得分:2)
module MyCallBack
def unbind # define your unbind method
puts "#{@@ip}: #{@@port}"
puts "-- disconnected from remote server!"
puts "-- attempting reconnection"
reconnect @@ip, @@port # use reconnect, already provided by EventMachine
end
end
答案 1 :(得分:1)
EventMachine为此提供了unbind方法:
module ConnectInterface
def connection_completed
puts "connected"
end
def unbind
puts "disconnected"
end
end
EM::run do
EM::connect("10.8.1.99", 5000, ConnectInterface)
end
请注意,无论您是否触发了断开连接,都会在断开连接时调用unbind方法。