отправка параметра qos вместе с уведомлением MQTT

Я использую приложение ponte node для отправки MQTT-уведомлений из Интернета на устройства, и просмотрите ниже формат, который я использую.

«http://www.example.com/resources/topic/«и сообщение в качестве тела при тестировании от почтальона. Мой вопрос заключается в том, как я могу отправить qos и сохранить параметр при отправке уведомления MQTT с использованием PHP CURL? Мой код PHP приведен ниже.

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_PORT              => self::MQTT_SERVER_PORT,
CURLOPT_URL               => self::MQTT_SERVER_URL.'/'.$topic,
CURLOPT_RETURNTRANSFER    => true,
CURLOPT_ENCODING          => "",
CURLOPT_MAXREDIRS         => 10,
CURLOPT_TIMEOUT           => 30,
CURLOPT_HTTP_VERSION      => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST     => "PUT",
CURLOPT_POSTFIELDS        => "test message"));
curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if(!$err){
$sent = true;
}

С Уважением,
Тисмон Варгезе.

0

Решение

Если вы хотите отправлять сообщения MQTT, невозможно использовать PHP curl, поскольку он отправляет данные по протоколу HTTP (и некоторым другим, но не MQTT).

MQTT — это легкий протокол, который заменяет HTTP для отправки сообщений. Вы можете использовать следующий код для отправки сообщений MQTT с PHP:

https://github.com/bluerhinos/phpMQTT

Вот пример кода для публикации данных в брокере MQTT (с qos и сохранением параметров):

require("phpMQTT.php");

$brokder = "address";
$port = 1883;
$clientName = "Client00";
$topic = "topic";
$message = "Test Message";
$qos = 0;
$retain = 0;

$mqtt = new phpMQTT($broker, $portNo, $clientName);

if ($mqtt->connect()) {

$mqtt->publish($topic, $message, $qos, $retain);
$mqtt->close();

} else {

echo "Error Occured";

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]