Melhor resposta
Erros de desligamento de soquete geralmente são erros quando as solicitações que chegam ao seu servidor são mais do que podem lidar com. Isso pode ser devido a diferentes razões, como seu servidor está chamando outro servidor, pode ser um banco de dados que está respondendo lentamente e, portanto, está esperando por uma resposta por um longo tempo e, entretanto, outras solicitações estão se acumulando, etc.
- Feche a conexão se tiver aberto alguma para conexão com o banco de dados após o término do trabalho. Na maioria das vezes, esse é o motivo.
- Você pode lidar com isso usando os conceitos Async ou Promise e SetTimeOut que farão com que seu servidor espere por uma resposta por um determinado tempo e, se demorar muito, retorne com uma mensagem de erro.
- Você pode criar várias instâncias de seu aplicativo no servidor e cada instância tratará as solicitações separadamente.
- Além disso, se estiver desenvolvendo um pequeno utilitário, você pode modificá-lo para disparar solicitações limitadas após um determinado intervalo.
Resposta
O erro de desligamento do soquete ocorre em dois casos. Quando você é um cliente & Quando você é um servidor / proxy
Quando você, como cliente, envia uma solicitação a um servidor remoto e não recebe uma resposta em tempo hábil. Seu soquete foi encerrado, o que gerou este erro. Você deve detectar este erro e decidir como tratá-lo: se repetir a solicitação, enfileirar para mais tarde, etc
Quando você, como um servidor, talvez um servidor proxy, recebe uma solicitação de um cliente, comece a agir sobre ela (ou retransmita a solicitação para o servidor upstream) e, antes de preparar a resposta, o cliente decide cancelar / abortar a solicitação.