EventMachineの切断と再接続のテストの検出
-
29-10-2019 - |
質問
TCP接続が失敗した時期を検出し、再接続が起動できるかどうかを確認するためにテストするイベントマシンのシステムオントップを構築しようとしています。私はすべてのEventMachineコードを経験しましたが、接続のコールバックが動作中または再接続のいずれかのコールバックがある場所を見つけることができないようです。コードに時間を設定したとしても、保留中の接続に関するコールバックはありません。再接続を再接続しようとすると、接続が成功したか失敗したかについてのフィードバックはありません。私はそれを使用して、Telnetインターフェイスに効果的に接続しています。
EventMachine.run do
c = EventMachine.connect "10.8.1.99",5000,ConnectInterface
c.pending_connect_timeout = 10
終わり
どんな助けも大歓迎です。
解決
eventMachineはこれのためにバインドされていない方法を提供します:
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メソッドが切断時に呼び出されることに注意してください。
他のヒント
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
所属していません StackOverflow