У меня есть сервер с несколькими клиентами, подключенными к нему.Когда нажимают CTRL + C (то есть, реактор начинает закрываться), я хочу закрыть все свои соединения, подождать, пока они не будут полностью закрыты, а затем остановиться.Я делаю это, проходя через транспорты подключенных клиентов и звоня .loseConnection()
.На тех, которые подключены локально, они сразу отключаются.Однако на том, который подключен через Интернет, соединение не теряется сразу.Связь прекращается - и закрытие клиентской программы больше даже не сообщает серверу о том, что соединение разорвано, хотя это происходит до вызова .loseConnection()
- но соединение не считается «потерянным» до тех пор, пока через несколько минут после отправки нескольких запросов сердцебиенияс сервера.
Я понимаю, что если соединение прервется, сервер не сможет узнать, если он не попытается отправить некоторые данные.Но если я специально прошу закрыть соединение, почему оно не сразу закрывается / отключается?Я вызываю не ту функцию?