2016-11-14 7 views
0

Webから装置へMQTT通知を送信するためにponteノード・アプリケーションを使用しています。使用している形式を以下に示してください。MQTT通知とともにqosパラメーターを送信する

http://www.example.com/resources/topic/」と、郵便配達員から試験中の本文としてのメッセージ。私の質問は、qosを送信し、PHP CURLを使用してsendin MQTT通知中にパラメータを保持する方法です。私の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メッセージを送信する場合は、HTTPプロトコル(およびMQTT以外のもの)を使用してデータを送信するため、PHP curlを使用することはできません。

MQTTは、メッセージを送信するためにHTTPを置き換える軽量プロトコルです。 (QOSとし、パラメータを保持)

ここhttps://github.com/bluerhinos/phpMQTT

がMQTTブローカーに公開するデータのためのサンプルコードです:あなたは、PHPでMQTTメッセージを送信するために、次のコードを使用することができます

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

私はPonteについて知らなかった。それは面白いです。それについて教えてくれてありがとう。 – Mehdi

関連する問題