还没有链接 就报错了
public function onWorkerStart()
{
var_dump(getenv('MQTT_HOST') . ':' . getenv('MQTT_PORT'));
var_dump(getenv('MQTT_USER') . ':' . getenv('MQTT_PASSWORD'));
$mqtt = new Client(getenv('MQTT_HOST') . ':' . getenv('MQTT_PORT'), [
'username' => getenv('MQTT_USER'),
'password' => getenv('MQTT_PASSWORD'),
]);
}
Fatal error: Declaration of Workerman\Mqtt\Protocols\Mqtt::input(string $buffer, Workerman\Connection\ConnectionInterface $connection): int must be compatible with Workerman\Protocols\ProtocolInterface::input($recv_buffer, Workerman\Connection\ConnectionInterface $connection) in /Users/zhengjiefeng/yujianshanhai/api-device-dept/vendor/workerman/mqtt/src/Protocols/Mqtt.php on line 134
macos
php8.3
提问时把workerman 和 mqtt版本发下。
composer info
能看到版本信息workerman/mqtt 2.0
workerman/webman-framework 1.5.19 High performance HTTP Service Framework.
用的docker安装的,emqx/emqx:5.8.2 镜像启动的MQTT服务器
示例代码
出现错误信息
现在最新版本是2.1,升级到最新
可以了
我想直接发送主题消息给MQTT,应该怎么处理,不开自定义进程,不用处理订阅主题消息
出现报错
client的操作是异步的,publish的时候并不一定connected了,所以不能用阻塞的思想写;另外也不建议短链接client,建议持久化;