Skip to content

Commit b41affb

Browse files
ShogunPandacodebytere
authored andcommittedMay 16, 2020
doc: add note about clientError writable handling
PR-URL: #33308 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]>
1 parent 4f0cd64 commit b41affb

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed
 

‎doc/api/http.md

+15
Original file line numberDiff line numberDiff line change
@@ -1037,6 +1037,21 @@ ensure the response is a properly formatted HTTP response message.
10371037
correctly;
10381038
* `rawPacket`: the raw packet of current request.
10391039

1040+
In some cases, the client has already received the response and/or the socket
1041+
has already been destroyed, like in case of `ECONNRESET` errors. Before
1042+
trying to send data to the socket, it is better to check that it is still
1043+
writable.
1044+
1045+
```js
1046+
server.on('clientError', (err, socket) => {
1047+
if (err.code === 'ECONNRESET' || !socket.writable) {
1048+
return;
1049+
}
1050+
1051+
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
1052+
});
1053+
```
1054+
10401055
### Event: `'close'`
10411056
<!-- YAML
10421057
added: v0.1.4

0 commit comments

Comments
 (0)