Mosquitto搭建Android推送服务番外篇一:各种报错解决

文章钢要:

目前笔者在开发搭建Mosquitto服务器,在此期间遇到很多实际问题,所以走了很多弯路,在这里写出来为大家提供一些帮助。

 

1、安装完成后启动Mosquitto报错

执行mosquitto客户端程序时出现找不到动态库:libmosquitto.so.1

./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

解决方法:

执行命令

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

ldconfig

即可

2、启动Mosquitto服务器时配置文件报错

Invalid user 'mosquitto'.

[root@localhost src]# ./mosquitto  
1437558553: Error: Invalid user 'mosquitto'. 

这是因为配置文件里没有当前用户,有2中解决方法:

1.修改配置文件:mosquitto.conf ,增加登录的用户,例如当前登录用户为root。

2.执行命令增加当前用户: adduser mosquitto

 

3、重启Mosquitto

笔者在网上找了很多资料都没有提起怎样重启服务器,并且在官网上也没有相应命令提示。

所以我们使用Liunx终止进程命令,强行退出。

先kill掉,再重启:
[root@localhost ~]# ps -A | grep mosquitto
21674 ?        00:02:38 mosquitto
[root@localhost ~]# kill -9 21674

4、连接无响应

服务器正常开启,但是远程发布信息的时候会有如下提示:

no route to host
这时远程服务器上防火墙将信息连接,所以执行下面命令问题解决
[zhoulei@localhost ~]$ sudo iptables -F
 
5、桥接(bridge)时前缀设置设置
在做桥接时会有如下配置:
connection Bridge
address 192.168.0.100:1883
topic rootdir/# both 2 localprefix/ remoteprefix/
 
connection Bridge2
address 192.168.0.101:1883
topic rootdir/# both 2 localprefix/ remoteprefix/

主服务器与2台从服务器做了桥接,在100服务器上订阅消息

mosquitto_sub -t remoteprefix/rootdir/#

在100与101服务器上发布消息

mosquitto_pub -t remoteprefix/rootdir/ -m "Hello word"

上述订阅者可以收到“Helloworld”。如果在主服务器上发布消息就要使用

mosquitto_pub -t localprefix/rootdir/ -m “Hello world”

订阅者才能收到消息。因此会产生一个问题在写代码的时候,需要区分是主服务器还是从服务器。以便增加本地前缀或者远程前缀。会给编程带来很多麻烦。

为了解决这个问题可以将2个前缀名称写成一致即可。如下:

connection Bridge
address 192.168.0.100:1883
topic rootdir/# both 2 prefix/ prefix/
 
connection Bridge2
address 192.168.0.101:1883
topic rootdir/# both 2 prefix/ prefix/

转载于:https://www.cnblogs.com/yinyi521/p/6087454.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值