2017-09-13 5 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 중 하나를 사용한다 ->

+0

https://github.com/mqtt/mqtt.github.io/wiki/libraries#php 감사합니다. 저는 'sskaje의 MQTT 라이브러리'를 사용하려고했습니다. 게시 잘 작동하지만 subscribe.php 사용하려고하면이 오류가 발생합니다. 치명적인 오류 : E : \ Programmieren \ XAMPP \ htdocs \ app \ views \ MQTT \ mqtt \ SocketClient에서 최대 실행 시간이 30 초를 초과했습니다. php on line 228' –

+1

새로운 문제, 새로운 질문 – hardillb