react-native-tcp-socket icon indicating copy to clipboard operation
react-native-tcp-socket copied to clipboard

fix: Allow client.write() when pending

Open jamesthomp opened this issue 1 year ago • 1 comments

Thanks for this library. I've tried to use it with another library which essentially does:

const net = require("net");
const client = net.createConnection({ port: 1883, host: "example.com" });
client.write("Hello, server!");

The above code works in node without raising an error, but in this library it throws the 'Socket is closed.' error. This change resolves the issue and queues up the writes until the socket connects.

jamesthomp avatar Oct 27 '24 00:10 jamesthomp

@jamesthomp, thanks for the PR!

However, this does not match NodeJS behaviour, as client.write("Hello, server!"); must true if the highWaterMark is not yet met. We must make sure to follow NodeJS' docs:

The return value is true if the internal buffer is less than the highWaterMark configured when the stream was created after admitting chunk. If false is returned, further attempts to write data to the stream should stop until the 'drain' event is emitted.

Rapsssito avatar Apr 23 '25 21:04 Rapsssito