mosquitto扩展安装php客户端库

  • 安装扩展前需安装Mosquitto

Mosquitto 安装教程

wget  http://pecl.php.net/get/Mosquitto-0.4.0.tgz

tar xvf Mosquitto-0.4.0.tgz

cd Mosquitto-0.4.0

/path/to/phpize

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

--with-mosquitto 
是可选参数,只有当安装程序找不到libmosquitto拓展包,才需要添加这个参数

make && make install

然后添加extension=mosquitto.so到你的PHP配置文件php.ini中

Mosquitto-PHP 使用

中文官方文档

  • 发布pub
$clientId='xxx';
$cleanSession=false;
//$clientId 客户端id
//$cleanSession 如果设为false ,当 client 断开连接后,broker 会保留该 client 的订阅和消息,直到再次连接成功;如果设为 true(默认) ,client 断开连接后,broker 会将所有的订阅和消息删除。
$client = new \Mosquitto\Client($clientId, $cleanSession);
$username='xxx';//用户名
$password='xxx';//密码
$client->setCredentials($username,$password);
$address='xxx';//连接地址
$port='xxx';//端口
$keepalive = 60//在没有收到消息的情况下,服务器应该ping客户端的部分数量。
$client->connect($address, $port, $keepalive);
$client->loop();//客户端主网络循环
$mid = $client->publish('topic', $payload, $qos,$retain);
$topic  – 要发表的主题
$payload  – 消息体
$qos  – 服务质量,0、1、2
$retain – 是否保留此消息,默认为false
  • 订阅sub
$client = new \Mosquitto\Client($clientId, $cleanSession);
$client->setCredentials($username,$password);
$client->connect($address, $port, $keepalive);
$client->subscribe('topic', $qos);
$client->onMessage(function($m) {
    var_dump($m);
});
$client->loopForever();

鲁ICP备16017569号-2