質問

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top