`
ymq267
  • 浏览: 130337 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Mosquitto简单安装及过程出现的问题

阅读更多
转自: http://blog.csdn.net/blinkdr/article/details/61428695

Mosquitto简单介绍
        实现MQTT协议的软件有很多,常见的有Mosquitto、Apollo、Mosca、emqttd等。今天要介绍的是Mosquitto,它主要是由C来开发的,包括了服务端和客户端,可以跨平台部署。更多的时候,使用它来搭建MQTT服务器,其他的嵌入式设备(如nodemcu、树莓派等)。单机能够承受十万以上的连接(没测试过),但是对于一般的物联网应用还是足够使用。

源码安装
        Mosquitto的最新版本是v1.4.11,其源码可以通过其官网Mosquitto或者其项目地址Github下载获得并解压。

mkdir mosquitto 
cd mosquitto
wget http://mosquitto.org/files/source/mosquitto-1.4.11.tar.gz -O mosquitto.tar.gz
//从官网获取最新版本
tar -zxvf mosquitto.tar.gz
cd mosquitto-1.4.11


解压之后,其目录结构如下:



        其中,client文件夹下是mosquitto_sub和mosquitto_pub的源码,lib文件夹下是.so库文件的源码,src文件夹下是mosquitto和mosquitto_passwd的源码。如果要修改编译选项,对config.mk进行修改即可。
这里采用默认的编译选项,然后进行编译安装。


make
sudo make install       //安装时需要管理员权限
mosquitto --help        //如果出现版本信息和帮助内容,则说明安装成功


在make预编译以及make install会出现问题。
具体发生错误的信息忘了,大致是以下几个原因。
1.openSSL没安装
2.g++没安装
3.启动报 Invalid user 'mosquitto'.错误
两种解决办法:
(1)修改配置文件:mosquitto.conf ,增加登录的用户,例如当前登录用户为root


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



3.其他(忘了,想起来再补)


简单体验
服务器代理启动,只需简单一条命令即可

mosquitto -v
//-v参数会打印出各类信息


也可以这种方式启动
mosquitto -c mosquitto.conf//以哪个配置文件为基础启动

//-v参数会打印出各类信息


然后使用mosquitto_sub订阅一个主题

mosquitto_sub -h localhost -t "blinkdr"
//-h参数指定要连接的MQTT服务器
//-t参数指定要订阅的主题


在另外一个终端中,使用mosquitto_pub命令推送消息

mosquitto_pub -h localhost -t "blinkdr" -m "hello world"
//-h参数指定要连接的MQTT服务器
//-t参数指定向指定主题推送消息
//-m参数指定消息内容


效果如图



客户端工具MQTT.fx测试
问题 : vmware workstation 14虚拟机下搭建的Centos7时,MQTT.fx以及java paho代码连接不上
解决 :
1.可能是Centos防火墙开启,关闭试试。
service iptables status可以查看到iptables服务的当前状态。
但是即使服务运行了,防火墙也不一定起作用,你还得看防火墙规则的设置 iptables  -L
在此说一下关于启动和关闭防火墙的命令:

开启防火墙: service iptables start
关闭防火墙: service iptables stop

2.将centos中mosquitto的端口号打开。

iptables -L -n    //查看所有端口开放状态
iptables -I INPUT -p tcp --dport 8889 -j ACCEPT // 当前有效重启无效
-A IN_public_allow -p tcp -m tcp --dport 1888 -m conntrack --ctstate NEW -j ACCEPT   //重启永久有效


1) 重启后永久生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop


需要注意部分:
1)需要永久有效时,使用上面的永久有效命令,再执行service iptables restart 或 reboot重启系统  或两个一起绝对有效
其实主要还是 iptables文件是否有此策略为准,命令实在不行直接文件里加上试试
实在不行,重启操作系统。

2)如果关闭防火墙的话,端口策略没生效,还是不能访问端口,需要将防火墙打开,然后防火墙策略保存并生效已有,启动防火墙才可以正常访问端口。


参考 : https://www.cnblogs.com/blog-yuesheng521/p/7198829.html

MQTT.fx测试





总结
        Mosquitto就是这么简单,当然要使用它的高级特性,像TLS和用户验证等,需要对其编译选项及服务器启动配置文件有深入的了解。另外,其官网提供了一个测试用的MQTT服务器,可以供大家学习使用。
分享到:
评论

相关推荐

    mosquitto安装文件以及需要的dll文件

    至于“mosquitto dll”,这强调了mosquitto服务与DLL文件的关联,说明安装过程中可能会涉及到对这些库文件的处理。这些.dll文件可能是mosquitto的特定版本,或者是与MQTT协议交互所需的第三方库。 总的来说,这个...

    基于Linux平台的Mosquitto环境搭建

    在Ubuntu上安装Mosquitto的过程非常简单。首先,更新系统软件库: ```bash sudo apt update ``` 然后,安装Mosquitto服务器及其客户端工具: ```bash sudo apt install mosquitto mosquitto-clients ``` 安装...

    Windows下搭建mosquitto及所需DLL文件

    安装过程相对简单,只需按照向导提示进行即可,但记得选择合适的安装路径。 在mosquitto运行过程中,可能需要一些依赖的动态链接库(DLL)文件。在描述中提到了三个关键的DLL文件: 1. **libeay32.dll**:这是...

    mosquitto_client_test.rar 物联网mosquitto库应用

    在物联网领域,MQTT(Message Queuing Telemetry Transport)是一种广泛使用的轻量级发布/订阅协议,设计思想是开放、简单、小巧、节能,适用于低带宽、高延迟或不可靠网络环境。Mosquitto是一个开源的MQTT服务器...

    mosquitto_mqtt_centos_x86.tar.gz

    "直接在解压后的目录下sh mqtt.sh运行"说明启动服务器的过程简单,只需要执行一个脚本文件即可。默认端口是1883,这是MQTT协议的标准端口,用于客户端与服务器之间的通信。描述还指出,这个软件包兼容CentOS 6和7的...

    mosquito消息队列(windows 32位库)

    在开发过程中,注意mosquitto库的线程安全特性,因为某些操作可能需要在特定的线程上下文中执行。此外,对于win32位库,要确保你的应用程序和mosquitto库都是32位的,以防止兼容性问题。 标签中的"demo"表明,提供...

    用java写的mqttbroker,实现mqtt中转通信,与mosquitto一样的功能

    在开发过程中,开发者可能会使用开源的Java MQTT库,如Paho MQTT或Eclipse Mosquitto Java Client,作为客户端连接测试的工具。同时,为了确保兼容性,Java MQTT Broker需要遵循MQTT v3.1.1或v5.0规范。 总结来说,...

    北邮嵌入式实验_MQTT协议实验过程及代码说明

    ### 北邮嵌入式实验_MQTT协议实验过程及代码说明 #### 一、实验环境搭建 在开始实验之前,需要确保实验环境已经搭建完成。本次实验使用的是虚拟机Vmware12.5.7,并且安装了Ubuntu 17.10作为操作系统。为了实现MQTT...

    restify-mosquitto-auth:用于 mosquitto 身份验证 mqtt connectpubusb 的简单 REST 服务器

    【restify-mosquitto-auth】是一个专门为mosquitto MQTT broker设计的身份验证REST服务器,它使得连接、发布和订阅MQTT消息的过程更加安全便捷。这个项目是基于JavaScript编写的,利用了Node.js的restify库来创建...

    LinuxMQTT服务器搭建.rar

    总结起来,Linux MQTT服务器搭建涉及选择合适的MQTT broker软件(如Mosquitto)、安装配置、启动服务以及编写C语言客户端程序进行通信。这个过程不仅涵盖了系统管理知识,也涉及了物联网通信协议和编程实践。通过...

    SpringBoot集成MQTT之消息订阅处理程序

    在实际应用中,我们可以结合AES加密和BASE64编码,确保MQTT消息在传输过程中的安全。例如,在`MqttMessageListener`的`onMessageArrived`方法中,接收消息后进行解密操作: ```java @Override public void ...

    基于MQTT协议的远程路灯控制系统的设计.docx

    - **简单易用**:支持多种MQTT服务器,如EMQ、Apache Apollo、Mosquitto等。 对于本项目而言,选择了轻量级的Mosquitto MQTT服务器。其安装步骤包括: 1. 从Eclipse官网下载mosquitto安装包。 2. 双击安装包按照...

    UnrealMosquitto:一个基于Mosquitto的支持虚幻引擎4蓝图的MQTT客户端

    如何安装由于尚未将其开发为插件,因此安装过程会非常繁琐。 到目前为止,仅支持Windows x64。 确保您的项目针对C ++进行了设置。 如果还不是这种情况,请在Unreal中添加一个简单的C ++ Actor,稍后再删除。 将Third...

    mqtt&iot;物联云平台技术调研及实现

    Mosquitto的安装和调试过程包括启动代理服务端、发布端和订阅端,确保代理正常运行并能够处理消息。 Eclipse Paho是基于Java的MQTT客户端工具,它提供的SDK被广泛用于MQTT客户端的开发。Eclipse Paho的Java客户端库...

    HomeAssistant_SmarthThings_Homebridge:我的安装过程用于安装和配置Hassbian以与SmartThings和HomeBridge一起使用

    Hassbian是Home Assistant的一个特殊版本,它预先配置在Debian Linux发行版上,特别为Raspberry Pi优化,使得安装和运行Home Assistant变得更加简单。通过Hassbian,你可以监控和控制家里的各种智能设备,如照明、...

    MQTT java版DEMO

    安装过程通常涉及解压安装包,配置服务器设置(如允许连接的IP地址),然后启动服务。具体步骤可能会因操作系统的不同而略有差异,但通常可以通过以下命令行操作完成: - 解压安装包 - 配置mosquitto.conf文件 - ...

    linux-DietPi用于您单板计算机的轻量级justice

    - **易用性**:DietPi提供了一套图形化的设置工具,用户可以通过简单的步骤完成系统配置,包括网络设置、语言选择、软件安装等。 - **自动化**:安装过程高度自动化,只需要连接显示器和键盘,按照提示即可完成,...

    mqtt源码及文档

    后者`mqtt-v3.1.1.pdf`则可能详细介绍了MQTT的v3.1.1版本,这是MQTT的最新稳定版本,包含了MQTT协议的详细规范,包括连接、断开、发布、订阅等各种操作的报文格式和交互过程。 `paho.mqtt.c-master.zip` 文件可能是...

    mqtt_js测试程序

    配置过程通常包括修改mosquitto配置文件,开启WebSocket插件,并设置相应的端口。 配置完成后,你可以使用JS库如Paho MQTT或mosca-client等来创建客户端,实现与MQTT服务器的连接。这些库提供了API,允许开发者订阅...

    emqx-windows-v3.2.7.zip

    EMQ X 是一款开源的 MQTT 消息中间件,专为物联网(IoT)设计,具有高度可扩展性和高可用性。"emqx-windows-v3.2.7.zip" 文件...此外,了解 MQTT 协议和 EMQ X 的配置选项对于优化系统性能和解决可能出现的问题至关重要。

Global site tag (gtag.js) - Google Analytics