Our online service will throw ECONNRESET
from time to time, so I want to reproduce this error. After googling and stackoverflowing, I know ECONNRESET
may occur when another peer abruptly closes the socket, meantime current peer is still reading data. The complete error message our online service got is:
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
What I tried:
// server.ts
import net, { Socket } from "net";
const chunks = [];
const server = net.createServer((stream: Socket) => {
stream.on("data", data => {
console.log(data.byteLength); // still reading data
});
stream.on("error", e => console.log(e));
});
server.listen("8080", () => {
console.log("The server is listening to 8080");
});
server.on("error", e => {
console.log(e);
})
// client.ts
import net from "net";
const options = {
port: 8080,
};
const client = net.connect(options, () => {
console.log("connected!");
client.write(Buffer.alloc(1024 * 1024 * 1024)); // big buffer so server will need to consume for a long time
setTimeout(() => {
client.destroy(); // abruptly close the socket
}, 0);
});
However, no error is thrown. Is there a way to forge an ECONNRESET
?