Skip to content

fix: Allow client.write() when pending #200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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