Domanda

Sto cercando di costruire un sistema in ontop della macchina per eventi che rileverà quando una connessione TCP non è riuscita e testerà per vedere se è possibile licenziare una riconnessione. Ho superato tutto il codice di Machine, ma non riesco a trovare dove c'è un callback per la connessione in azione in azione o in riconnessione. Anche se ho impostato i tempi nel codice, non c'è callback sulla connessione in sospeso e se provo a ricollegare il fuoco non ricevo alcun feedback sul fatto che la connessione sia riuscita o non è riuscita. Lo sto usando per connettermi a efficacemente un'interfaccia Telnet.

EventMachine.run do
c = EventMachine.connect "10.8.1.99",5000,ConnectInterface
c.pending_connect_timeout = 10

fine

Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

EventMachine fornisce il metodo INSIDID per questo:

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

Tieni presente che il metodo INBID verrà chiamato in disconnessione se hai innescato o meno la disconnessione.

Altri suggerimenti

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top