MQTT 3.1.1 Client with TSL support in PHP
Note that all calls are blocking until a timeout occurs. If you need some fancy async solution, you'll have to find another repo.
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist karpy47/php-mqtt-client
or add
"karpy47/php-mqtt-client": "*"
to the require section of your composer.json.
Should work with all recent PHP versions.
Code developed and running in production using PHP v5.6.27
Not tested on PHP v7, please report back!
$client = new MQTTClient('mqtt-server.domain.com', 8162);
$client->setAuthentication('mqtt-server.username','mqtt-server.password');
$client->setEncryption('cacerts.pem');
$success = $client->sendConnect(12345); // set your client ID
if ($success) {
$client->sendSubscribe('topic1');
$client->sendPublish('topic2', 'Message to all subscribers of this topic');
$messages = $client->getPublishMessages(); // now read and acknowledge all messages waiting
foreach ($messages as $message) {
echo $message['topic'] .': '. $message['message'] . PHP_EOL;
}
$client->sendDisconnect();
}
$client->close();
Thanks to bluerhinos/phpMQTT and McFizh/libMQTT.
Released under the MIT License. Please see License File for more information.