Это последовательность завершения соединения TCP по умолчанию,
Вызвав client.end()
, узел js отправит пакет FIN на сервер, а сервер ответит клиентом пакетом FIN, чтобы принять завершение сокета.
Что касается документации nodejs, то, что делает socket.end
,
Полузакрыть сокет. то есть он отправляет пакет FIN. Возможно, сервер все еще отправит некоторые данные.
Когда пакет FIN получен, соединение с сервером от клиента автоматически закрывается, и запускается socket.on('close', .. )
, и ACK отправляется обратно.
Таким образом, соединение прерывается согласованием как сервера, так и клиента, чтобы сервер мог отправлять данные, которые могут потребоваться, до закрытия соединения.
Но при вызове socket.destroy
клиентское соединение будет разорвано без принудительного получения пакета FIN, и это лучший способ избегать, если это возможно.
Справка: