文章钢要:

目前笔者在开发搭建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
: Error: Invalid user 'mosquitto'.

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

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

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

3、重启Mosquitto

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

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

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

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/

Mosquitto搭建Android推送服务番外篇一:各种报错解决的更多相关文章

  1. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  2. Mosquitto搭建Android推送服务(二)Mosquitto简介及搭建

    文章钢要: 1.了解Mosquitto服务器 2.在Liunx中搭建Mosquitto服务器 3.设置Mosquitto集群 一.Mosquitto简介 一款实现了消息推送协议 MQTT v3.1 的 ...

  3. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  4. Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置

    文章钢要: 1.对服务器进行多用户配置 2.根据不同用户给予不同权限 一.Mosquitto的用户机制 mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作 ...

  5. Android推送服务——百度云推送

    一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做 ...

  6. Android推送服务(2)微信智能心跳方案

    http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207243549&idx=1&sn=4ebe4beb8123f1b5 ...

  7. Android推送服务(1)几种实现方式

    1.几种常见的解决方案实现原理 1)轮询(Pull)方式:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等.而且你还要考虑轮询的频率,如果 ...

  8. 解决跟Docker私有仓库登陆,推送,拉取镜像出现的报错

    出现问题:Error response from daemon: Get https://192.168.186.120/v1/users/: dial tcp 192.168.186.120:443 ...

  9. Android Studio ERROR: x86 emulation currently requires hardware acceleration!报错解决傻瓜教程~

    很早之前就碰到过Android Studio模拟器无法启动的问题,今天终于尝试去解决了下,下面将我解决的方法记录下. 模拟器报错信息为: emulator: ERROR: x86 emulation ...

随机推荐

  1. 【UOJ #35】后缀排序 后缀数组模板

    http://uoj.ac/problem/35 以前做后缀数组的题直接粘模板...现在重新写一下模板 注意用来基数排序的数组一定要开到N. #include<cstdio> #inclu ...

  2. Leetcode 55. Jump Game

    我一开始认为这是一道DP的题目.其实,可以维护一个maxReach,并对每个元素更新这个maxReach = max(maxReach, i + nums[i]).注意如果 i>maxReach ...

  3. Python 【第五章】:线程、进程和协程

    Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. #!/usr/bin/env python # -*- coding:utf-8 -*- import t ...

  4. mysql 远程连接数据库的二种方法

    http://blog.csdn.net/freecodetor/article/details/5799550 一.连接远程数据库: 1.显示密码 如:MySQL 连接远程数据库(192.168.5 ...

  5. 将list集合的元素按照添加顺序的倒序进行排列取出

    1.方法 Collections.reverse(list); 2.代码示例 /** * 从redis中将现场状态的记录全部取出 * @param aucId * @return */ @Reques ...

  6. Netty源码分析之服务端启动过程

    一.首先来看一段服务端的示例代码: public class NettyTestServer { public void bind(int port) throws Exception{ EventL ...

  7. div 纯数字很长时无法折行解决

    <div style="width:100%;word-wrap:break-word;word-spacing:normal;"> </div> 加上红色 ...

  8. thinkphp5.0助手函数占用服务器资源

    db('user')  默认情况下,每次请求都会重新连接数据库,这样会占用服务器资源 方法1.如果不想每次都重连可以这样 db("List",[],false) 方法2.还可以直接 ...

  9. todo

     ID生成器要做成兼容分布式, 数据库ef控制要改成手动升级, 异常日志模块,操作日志某快,,, 日志服务器,, 图片服务器,,,动静分离, 前后台分离,, 可扩展性,无状态化集群弹性部署, 数据库主 ...

  10. 室内定位系列(一)——WiFi位置指纹(译)

    原文:<Advanced Location-Based Technologies and Services>--chapter 2 WiFi Location Fingerprint 作者 ...