通过 TCP 的 mqtt 连接消息是什么样的?

How does the connection message for mqtt via TCP look like?

我目前正在开发一个网站,该网站应该是可以连接到 MQTT 代理的客户端。我目前使用的经纪商是 mosquitto。在我的本地计算机上是 运行。连接也已建立,但要真正与代理一起工作,我需要一条连接消息。但是它看起来怎么样?

这就是我目前的代码,希望大家能帮助我。

<?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