2016-11-14 12 views
0

Я использую приложение узла ponte для отправки уведомления MQTT из Интернета на устройства и, пожалуйста, смотрите ниже формат, который я использую.отправка параметра qos вместе с уведомлением 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; 
      } 

С уважением, Tismon Varghese.

ответ

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

Спасибо за ответ , Но мой код работает отлично. Ponte (http://www.eclipse.org/ponte/) - это приложение, которое поддерживает как HTTP, так и MQTT. Поскольку он уже реализован; Я ищу метод, который может отправлять параметр QoS вместе с сообщением. –

+0

Я не знал о Понте. Это интересно. Спасибо, что рассказала мне об этом. – Mehdi

 Смежные вопросы

  • Нет связанных вопросов^_^