В настоящее время я работаю над сайтом, который должен быть клиентом, который может подключаться к брокеру 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.
MQTT — это НЕ HTTP, то, что вы написали, даже близко не соответствует действительности, вы изучали протокол перед началом?
Если вы действительно хотите написать необработанный MQTT-клиент, тогда я предлагаю вам прочитать спецификацию -> http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
В противном случае вам просто нужно использовать одну из существующих клиентских библиотек PHP -> https://github.com/mqtt/mqtt.github.io/wiki/libraries#php
Других решений пока нет …