Tengo dos componentes que se comunican a través de TCP / IP. El componente A actúa como servidor / escucha y el componente B es el cliente. Los dos deben comunicarse lo más rápido posible. Solo puede haber una conexión en cualquier momento (aunque eso es aparte de esta pregunta). Un desarrollador senior de mi empresa ha dicho que necesito usar latidos de nivel de aplicación entre los dos componentes para asegurar que la conexión permanezca abierta.
Pensé que la conexión permanece abierta con TCP / IP, pero he leído varios blogs / sitios que dicen que es una práctica bastante estándar latir entre estas aplicaciones.
Sé que parte de la razón por la que el componente A late al componente B es para que pueda informar al soporte si hay problemas de comunicación con el componente B (el enlace está inactivo o el componente B no se está ejecutando). ¿Se necesitan los latidos del corazón por alguna otra razón? ¿Como para asegurarse de que con frecuencia hay algo "en la tubería" para mantenerla abierta?
El componente A actualmente late el componente B cada 20 segundos y cierra la conexión si no se recibe nada del componente B en 120 segundos. Luego reanuda la escucha de conexiones bajo el supuesto de que el componente B intentará periódicamente una reconexión si el enlace está roto. Esto funciona satisfactoriamente.
Para reiterar mi pregunta: ¿Son necesarios los latidos del corazón para mantener activa una conexión TCP / IP?