Tôi có hai thành phần giao tiếp qua TCP / IP. Thành phần A hoạt động như một máy chủ / người nghe và Thành phần B là máy khách. Hai người nên giao tiếp càng nhanh càng tốt. Chỉ có thể có một kết nối tại bất kỳ thời điểm nào (mặc dù đó là một bên cho câu hỏi này). Một nhà phát triển cấp cao tại công ty của tôi đã nói rằng tôi cần sử dụng nhịp tim cấp ứng dụng giữa hai thành phần để đảm bảo kết nối luôn mở.
Tôi nghĩ rằng kết nối vẫn mở với TCP / IP nhưng tôi đã đọc một số blog / trang web nói rằng đó là một thực tiễn khá chuẩn đối với nhịp tim giữa các ứng dụng này.
Tôi biết một phần lý do thành phần A nhịp tim nên thành phần B có thể thông báo cho bộ phận hỗ trợ nếu có sự cố liên lạc với thành phần B (liên kết bị ngắt hoặc thành phần B không chạy). Nhịp tim có cần vì lý do nào khác không? Chẳng hạn như để đảm bảo rằng thường xuyên có một cái gì đó "trong đường ống" để giữ cho nó mở?
Thành phần A hiện đang đập thành phần B sau mỗi 20 giây và đóng kết nối nếu không nhận được gì từ thành phần B trong 120 giây. Sau đó, nó tiếp tục lắng nghe các kết nối với giả định rằng thành phần B sẽ định kỳ thử kết nối lại nếu liên kết bị hỏng. Điều này hoạt động thành công.
Để nhắc lại câu hỏi của tôi: Nhịp tim có cần thiết để duy trì kết nối TCP / IP không?