У меня есть два компонента, которые обмениваются данными через TCP/IP. Компонент A действует как сервер/слушатель, а компонент B - клиент. Эти два должны общаться как можно быстрее. В любой момент может быть только одна связь (хотя это не относится к этому вопросу). Старший разработчик в моей компании сказал, что мне нужно использовать биения уровня приложения между этими двумя компонентами, чтобы убедиться, что соединение остается открытым.
Я думал, что соединение остается открытым с TCP/IP, но я прочитал несколько блогов/сайтов, говорящих, что это довольно стандартная практика для биения между этими приложениями.
Я знаю часть компонента причины. Компонент B сердечных сокращений - это то, что он может информировать о поддержке, если есть проблемы с связью с компонентом B (либо ссылка не работает, либо компонент B не работает). Нужно ли сердцебиение по любой другой причине? Например, чтобы обеспечить, чтобы что-то "в трубе" не открывалось?
Компонент A в настоящее время активирует бит B каждые 20 секунд и закрывает соединение, если ничего не получено обратно из компонента B через 120 секунд. Затем он возобновляет прослушивание соединений в предположении, что компонент B будет периодически пытаться повторно подключиться, если связь нарушена. Это работает успешно.
Повторить мой вопрос: нужны ли сердечные сокращения для поддержания соединения TCP/IP?