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

Php mqtt通过TCP的连接消息是什么样子的?,php,sockets,tcp,mqtt,broker,Php,Sockets,Tcp,Mqtt,Broker,我目前正在开发一个网站,它应该是一个可以连接到MQTT代理的客户端。我目前使用的代理是mosquitto。它在我的本地计算机上运行。连接也已建立,但要真正使用代理,我需要一条连接消息。但是它看起来怎么样 这就是我现在的代码,希望你们能帮我 <?php $address = '127.0.0.1'; $port = 1883; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) {

我目前正在开发一个网站,它应该是一个可以连接到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";

MQTT不是HTTP,您所编写的内容甚至不接近正确,您在开始之前是否对协议进行过任何研究

如果您真的想编写原始MQTT客户机,那么我建议您阅读规范->


否则,您应该只使用一个现有的PHP客户端库->

谢谢。我尝试使用“sskaje的MQTT库”。发布工作正常,但当我尝试使用subscribe.php时,会出现以下错误:致命错误:在第228行“新问题,新问题”的E:\Programmieren\XAMPP\htdocs\app\views\MQTT\MQTT\SocketClient.php中超过了30秒的最大执行时间