I tried to connect MQTTS with my HTTPS server but it didn’t work. It works fine on MQTTX but with PHP it doesn’t connect.
<?php
$server = 'myServer';
$port = '8883';
$clientId = 'testing';
$username = 'XXXX';
$password = 'XXXX';
$clean_session = false;
$connectionSettings = new ConnectionSettings();
$connectionSettings->setUsername($username)
->setPassword($password)
->setKeepAliveInterval(60)
->setLastWillTopic('mytopic')
->setLastWillMessage('client disconnect')
->setLastWillQualityOfService(1);
$mqtt = new MqttClient($server, $port, $clientId);
$mqtt->connect($connectionSettings, $clean_session);
$mqtt->subscribe('mytopic/respond', function ($topic, $message) use ($mqtt) {
echo $message;
}, 2);
$mqtt->close();
$mqtt->interrupt();
?>
How to connect MQTTS with PHP.
3
Answers
For connecting MQTTS we need to add three additional params into the connectionSettings
https://github.com/php-mqtt/client-examples/blob/master/03_connection_settings/02_use_tls_without_client_certificate.php
Looking at the source code for the phpMQTT library you need to pass a
cafile
in the constructor to enable a SSL/TLS connection.Where the
cafile
is the path to a CA certificate to validate the broker.OK, first answer was against the wrong phpMQTT library, trying again.
The correct library is here: https://github.com/php-mqtt/client
From the doc:
e.g.