2017-09-13 71 views
-2

我目前正在開發一個網站,該網站應該是可以連接到MQTT經紀人的客戶端。我目前使用的經紀人是蚊子。它在我的本地計算機上運行。連接也建立了,但要真正與代理合作,我需要一個連接消息。但它是怎樣的?通過TCP的mqtt的連接消息如何?

這是我現在的代碼,希望你們可以幫助我。

<?php 
$address = '127.0.0.1'; 
$port = 1883; 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
if ($socket === false) { 
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n"; 
}else { 
    echo "OK.\n"; 
} 

echo "Versuche, zu '$address' auf Port '$port' zu verbinden ..."; 
$result = socket_connect($socket, $address, $port); 
if ($result === false) { 
    echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"; 
}else { 
    echo "OK.\n"; 
} 

$in = "HEAD/HTTP/1.1\r\n"; 
$in .= "clientId: clientid_12325334634\r\n"; 
$in .= "cleanSession: \r\n\r\n"; 

echo "HTTP HEAD request senden ..."; 
socket_write($socket, $in, strlen($in)); 
echo "OK.\n"; 

我正在使用Windows計算機,我正在使用XAMPP。

回答

0

MQTT不是HTTP,你寫的甚至都沒有接近正確,你在開始之前是否對協議做過任何研究?

如果你真的想要寫一個原始MQTT客戶那麼我建議你讀的規範 - >http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

否則,你應該只使用現有的PHP客戶libriaries之一 - >https://github.com/mqtt/mqtt.github.io/wiki/libraries#php

+0

謝謝。我試圖使用'sskaje的MQTT庫'。發佈工作正常,但當我嘗試使用subscribe.php它會得到我這個錯誤:致命錯誤:在E:\ Programmieren \ XAMPP \ htdocs \應用程序\視圖\ MQTT \ mqtt \ SocketClient中超過30秒的最大執行時間。 php上線228' –

+1

新問題,新問題 – hardillb