Как проверить, живо ли соединение, пока мы выбираем keep-alive соединение? - PullRequest
0 голосов
/ 20 октября 2019

Когда мы выбираем keep-alive соединение для связи с сервером, мы всегда сталкиваемся с проблемой, что сервер может иногда закрывать соединение. Затем мы получаем ошибку при использовании этого соединения. Вместо того, чтобы пытаться снова, у нас есть другой выбор, чтобы избежать такого рода проблем? Есть ли правильный способ проверить, живо ли соединение, прежде чем мы его используем?

Любые предложения приветствуются, спасибо!

1 Ответ

0 голосов
/ 20 октября 2019

При использовании HTTP keep-alive клиент всегда должен знать, что другой запрос на соединение может конфликтовать с соединением, близким к серверу.

Даже если вы сможете быть уверены, что соединениежив на клиенте в тот самый момент, когда вы отправляете HTTP-запрос, еще идет гонка. Поскольку для передачи данных TCP от клиента на сервер требуется некоторое время, а для закрытия (TCP FIN) от сервера - до клиента, существует вероятность того, что сервер уже закрыл соединение, ноклиент этого не делает, или что сервер закрывает соединение, прежде чем он читает новые данные с клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...