MQTT安装和php使用mosquitto的实例

安装的为mosquitto-1.6.7
cd /usr/local/
# 下载源代码包
wget http://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz
# 解压
tar zxfv mosquitto-1.6.7.tar.gz
mv mosquitto-1.6.7 mosquitto
# 进入目录
cd mosquitto

 

 

# 编译  安装
make && make install
可以看到最后几行,说明在/etc/下创建了配置文件和密码文件,后面可以使用,也可以就使用mosquitto/当前目录下的配置
install -m 644 mosquitto.conf "/etc/mosquitto/mosquitto.conf.example"
install -m 644 aclfile.example "/etc/mosquitto/aclfile.example"
install -m 644 pwfile.example "/etc/mosquitto/pwfile.example"
install -m 644 pskfile.example "/etc/mosquitto/pskfile.example"

 

配置

复制一份新的密码文件
cp pwfile.example pwfile
修改配置文件
vi mosquitto.conf
allow_anonymous false   #必须使用密码  搜索allow_anonymous  去掉前面#号
password_file /usr/local/mosquitto/pwfile  #密码文件 搜索 password_file
user root   # user mosquitto  权限

port 1884   # Port to use for the default listener.  端口

:wq

 

生成密码
cd src
./mosquitto_passwd -c /usr/local/mosquitto/pwfile user_name
连续输入两次没密码
可以发现之前pwfile里面有了内容

 

启动并后台运行mosquitto
./mosquitto -d -c ../mosquitto.conf

查看是否开启
ps -aux | grep mosquitto
whereis mosquitto_sub

cd /usr/local/bin
./mosquitto_sub -h 127.0.0.1 -u root -P 12345 -p 1884 -v -t uid_login

订阅如果遇到报错
./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
解决办法 
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
更新动态链接库  ldconfig

重新开个窗口
./mosquitto_pub -h 127.0.0.1 -u root -P 12345 -p 1884 -t uid_login  -m 12

之前订阅的窗口收到信息说明成功
 
cd /usr/local/mosquitto/src
启动并后台运行mosquitto
./mosquitto -d -c ../mosquitto.conf
查看是否开启
ps -aux | grep mosquitto
whereis mosquitto_sub
 
php安装mqtt  扩展
yum install -y php-devel
yum install -y mosquitto-devel
/www/server/php/56/bin/pecl install Mosquitto-alpha
 
安装过程提示有3个函数被禁用
popen   readlink  putenv
安装后要恢复
 
可能安装不成功 手动安装
cd /tmp/pear/download    进入下载的目录
tar zxvf Mosquitto-0.4.0.tgz    解压
cd Mosquitto-0.4.0                  继续进入
 
/www/server/php/56/bin/phpize
 
./configure --with-php-config=/www/server/php/56/bin/php-config && make && make install
 
 
 
php.ini  添加 extension=mosquitto.so
重启php
 
 
mqtt.php
<?php
    
$client = new Mosquitto\Client();
$client->setCredentials('root','12345');
$client->connect("127.0.0.1", 1884, 5);

for($i = 0;$i<=100;$i++) {
    $client->loop();
    $mid = $client->publish('ss', "Hello from PHP at " . date('Y-m-d H:i:s'), 1, 0);
    echo "Sent message ID: {$mid}\n";
    $client->loop();

    sleep(2);
}
sub.php
<?php

$c = new Mosquitto\Client;
$c->setCredentials('root','12345');
$c->connect('127.0.0.1',1884,50);

$c->subscribe('ss', 1);

$c->onMessage(function($m) {
    var_dump($m);
});
$c->loopForever();

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hangbobo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值