2017-09-13 9 views
-2

私は現在、MQTTブローカに接続できるクライアントでなければならないWebサイトで作業しています。私が現在使っているブローカーはモスキートです。私のローカルコンピュータで動作しています。接続も確立されていますが、実際にブローカと連携するには接続メッセージが必要です。しかし、それはどのように見えるのですか?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 \ app \ views \ MQTT \ mqtt \ SocketClientで最大実行時間が30秒を超えました。 php on line 228' –

+1

新しい問題、新しい質問 – hardillb

関連する問題