2016-11-14 9 views
0

웹에서 디바이스로 MQTT 통지를 보내려는 ponte 노드 어플리케이션을 사용 중이며 아래에서 사용중인 형식을 참조하십시오.MQTT 통지와 함께 qos 매개 변수를 보내십시오.

"http://www.example.com/resources/topic/"이며 우편 배달부에서 테스트하는 동안 본문으로 메시지. 내 질문에 어떻게 qos 보낼 수 및 PHP CURL 사용하여 MQTT 알림 sendin 동안 매개 변수를 유지할 수 있습니다? 내 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 컬링을 사용할 수 없습니다.

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