Add connection setting for blocking mode of socket #135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #133 has been shown that sending large messages (e.g. binaries with a few hundred or thousand kilo bytes) does not work reliably and sometimes only the partial message is sent, leaving the receiver with a broken message. The source of the issue has been found in the
stream_set_blocking($socket, false)
call in theMqttClient
class.This PR therefore adds a connection setting for the blocking mode of the socket. It is recommended to leave this setting with the default, but in some rare scenarios it may be useful to not use a non-blocking but a blocking socket. The primary use case is when publishing large messages without using the
MqttClient::loop()
method.