Najlepsza odpowiedź
Błędy rozłączania gniazda to zazwyczaj błędy, gdy liczba żądań przychodzących do serwera jest większa niż może uchwyt. Może to być spowodowane różnymi przyczynami, takimi jak wywołanie przez serwer innego serwera, może to być baza danych, która odpowiada wolno i dlatego czeka na odpowiedź przez długi czas, aw międzyczasie gromadzą się inne żądania itp.
- Zamknij połączenie, jeśli otworzyłeś jakieś połączenie z bazą danych po zakończeniu pracy. W większości przypadków jest to powód.
- Możesz sobie z tym poradzić używając koncepcji Async lub Promise i SetTimeOut, które sprawią, że Twój serwer będzie czekał na odpowiedź przez określony czas, a jeśli trwa to zbyt długo, po prostu wróć z komunikat o błędzie.
- Możesz utworzyć wiele instancji aplikacji na serwerze, a każda instancja będzie obsługiwać żądania osobno.
- Również jeśli tworzysz małe narzędzie, możesz je zmodyfikować, aby uruchamiało się ograniczone żądania po określonym czasie.
Odpowiedź
W dwóch przypadkach zgłaszany jest błąd rozłączenia gniazda. Gdy jesteś klientem i gdy jesteś serwerem / proxy
Gdy jako klient wysyłasz żądanie do zdalnego serwera i nie otrzymujesz na czas odpowiedzi. Twoje gniazdo zostało zakończone, co zgłosiło ten błąd. Powinieneś złapać ten błąd i zdecydować, jak sobie z nim poradzić: czy ponowić żądanie, ustawić w kolejce na później itp.
Gdy jako serwer, być może serwer proxy, otrzymujesz żądanie od klienta, wtedy zacznij na nim działać (lub przekaż żądanie do serwera nadrzędnego), a zanim przygotujesz odpowiedź, klient zdecyduje się anulować / przerwać żądanie.