Skip to content

Conversation

jamesthomp
Copy link

@jamesthomp jamesthomp commented Oct 27, 2024

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.

@Rapsssito
Copy link
Owner

@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 Rapsssito changed the title allow writes when pending fix: aallow writes when pending Apr 23, 2025
@Rapsssito Rapsssito changed the title fix: aallow writes when pending fix: Allow client.write() when pending Apr 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants