【问题标题】:Fatal error: Class 'Mosquitto\Client' not found致命错误:找不到类“Mosquitto\Client”
【发布时间】:2017-10-31 07:13:52
【问题描述】:

我一直在尝试使用 MQTT 发布订阅消息,但是每当我运行我的脚本时,它都会给我这个错误:

致命错误:在第 3 行的 /Applications/XAMPP/xamppfiles/htdocs/Mosquitto-PHP-master/examples/pub.php 中找不到类“Mosquitto\Client”

这是连接:

$client->connect("localhost", 1883, 5);

我从下面下载了代码: https://github.com/mgdm/Mosquitto-PHP

我尝试使用 pecl 命令下载代码,但它给了我错误:

没有可用于软件包“pecl.php.net/Mosquitto”的版本安装失败

代理在触发命令后工作正常。我在新的订阅者终端中收到一条消息 - 经纪人正在工作。

谁能告诉我我犯了什么错误?

【问题讨论】:

  • 对不起,我的英语不好,谢谢指正。你们有什么解决办法吗?
  • sunil 你可能没有包括大多数客户,这就是为什么
  • 感谢您的回复,但是当我从终端触发命令时它可以工作:- mosquitto_pub -t topic/state -m "Hello world"; // 发布者 mosquitto_sub -t 主题/状态 // 订阅者....但是当我尝试 PHP 脚本时它不起作用....
  • 安装了 mosquitto 命令行客户端并不意味着安装了 MQTT PHP 库。
  • 好的,谢谢,但我将这个用于 php :- github.com/mgdm/Mosquitto-PHP.

标签: php mqtt


【解决方案1】:

安装 mosquitto 不同于安装 php 扩展。

这是当 mosquitto 模块未正确加载时的问题

使用下面的方法安装mosquitto扩展(Mosquitto-PHP

phpize

./configure --with-mosquitto=/path/to/libmosquitto

make

make install

为了加载模块,在 php.ini 文件中添加“extension=mosquitto.so” 要检查加载的模块,请使用 phpinfo()

使用
php -i | grep 'php.ini'查找加载的 .ini 文件

结果看起来像 配置文件 (php.ini) 路径 => /usr/local/etc/php/5.6

加载的配置文件 => /usr/local/etc/php/5.6/php.ini

启用模块使用“sudo php5enmod mosquitto”

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 2017-08-29
    • 2014-10-03
    • 1970-01-01
    • 2011-09-08
    • 2011-12-17
    • 2018-12-21
    • 2012-11-21
    • 2015-03-20
    相关资源
    最近更新 更多