Tengo un cliente ruby tcpsocket que está conectado a un servidor.reconectar tcpsocket (o cómo detectar el socket cerrado)
¿Cómo puedo verificar si el socket está conectado antes de enviar los datos?
¿Trato de "rescatar" un tcpsocket desconectado, volver a conectarlo y volver a enviarlo? en caso afirmativo, ¿alguien tiene una muestra de código simple, ya que no sé por dónde empezar :(
Estaba bastante orgulloso de haber logrado obtener un tcpsocket de cliente conectado persistente en rieles. Entonces el servidor decidió matar al cliente y todo se vino abajo;)
edición
he utilizado este código para recibir todo el año algunos de los problemas - que intentará volver a conectarse si no está conectado, pero no manejará el caso si el el servidor está inactivo (se mantendrá reintentado). ¿Es este el comienzo del enfoque correcto? Gracias
def self.write(data)
begin
@@my_connection.write(data)
rescue Exception => e
@@my_connection = TCPSocket.new 'localhost', 8192
retry
end
end
Además, debe haber un método cerrado en el socket. Estoy un poco oxidado pero probado/confirmado fácilmente en irb/pry –