У меня есть Java-приложение, работающее внутри контейнера Docker. Это TCP-сервер, который подключается к клиенту, получает несколько байтов и обрабатывает их во время простоя сеанса.
Как симулировать бездействие TCP-сессии для моего приложения?
Я попробовал следующее в docker-compose.yml.
sysctls:
- net.ipv4.tcp_keepalive_intvl=45
privileged: true
Ниже показан TCP-клиент, подключающийся к серверу и отправляющий несколько байтов. У меня есть пут 70000, я думал, что это достаточно важно, чтобы вызвать событие простоя сеанса TCP. Но это не помогло.
@Override
public void run() {
if (isServerAvailable()) {
try {
outputStream = clientSocket.getOutputStream();
outputStream.write(SampleMessageFactory.PACKET_HEADER);
outputStream.write(SampleMessageFactory.PACKET_MESSAGE_BODY);
Thread.sleep(70000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Сеанс TCP никогда не простаивает, поэтому я не могу обработать байты для своих тестов.