1、今天与客户联调,客户反映我们搭建的mqtt server连不上,我之前一直程序直连的,为了验证这个问题,特地安装了一个客户端。
先将安装过程记录如下:
1、下载客户端源码包,网上用的比较多的是mosquitto,网上找了个下载地址:
http://www.eclipse.org/downloads/download.php?file=/mosquitto/source/mosquitto-1.4.15.tar.gz
2、解压到 /opt目录下
tar -zxvf mosquitto-1.4.15.tar.gz
3、make 编译,这个过程比较曲折,各种报错,好不折腾。
错误1:
mosquitto.c:884: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:887: warning: implicit declaration of function ‘ares_fds’
mosquitto.c:887: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:992: error: ‘struct mosquitto’ has no member named ‘achan’
mosquitto.c:993: warning: implicit declaration of function ‘ares_process’
mosquitto.c:993: error: ‘struct mosquitto’ has no member named ‘achan’
解决方案:
到解压包的路径下修改conifg.mk 中的WITH_SRV=YES =>WITH_SRV=no
# Build with SRV lookup support.
WITH_SRV:=no
错误2:
g++: Command not found
解决方案:
编译之前,需要安装c++插件
yum install gcc gcc-c++
错误3:
read_handle_server.c:31:25: error: uuid/uuid.h: No such file or directory
read_handle_server.c: In function ‘client_id_gen’:
read_handle_server.c:46: error: ‘uuid_t’ undeclared (first use in this function)
read_handle_server.c:46: error: (Each undeclared identifier is reported only once
read_handle_server.c:46: error: for each function it appears in.)
read_handle_server.c:46: error: expected ‘;’ before ‘uuid’
read_handle_server.c:59: warning: implicit declaration of function ‘uuid_generate_random’
read_handle_server.c:59: error: ‘uuid’ undeclared (first use in this function)
read_handle_server.c:60: warning: implicit declaration of function ‘uuid_unparse_lower’
方案2:
yum install openssl-devel(根据需要)
yum install c-ares-devel(必须)
yum install libuuid-devel(必须)
3、安装
sudo make install //安装时需要管理员权限
4、安装完成后,验证
[root@localhost mosquitto-1.4.5]# mosquitto --help mosquitto version 1.4.5 (build date 2018-04-18 01:26:54-0700) mosquitto is an MQTT v3.1 broker.
....
5、测试
切换两个窗口:
订阅方:
mosquitto_sub -t topicA -h 111.222.67.243 -u tbox-client -P 1qaz2wsx
发布方:
mosquitto_pub -t topicA -m Msgfrom1 -h 111.222.67.243 -u tbox-client -P 1qaz2wsx
出现意外状态:
找不到libmosquitto.so.1
error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
解决方案:修改libmosquitto.so位置
# 创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
# 更新动态链接库
sudo ldconfig
附录参数解释:
-h broker地址
-p 端口 (不指定默认1883)
-u 用户名(连接的用户名,mqtt server默认是开启匿名用户访问的,不需要)
-P 密码 (连接的密码,mqtt server默认是开启匿名用户访问的,不需要)
-m 消息内容
-t topic名字
参考文档:
https://www.cnblogs.com/xiaoerhei/p/3777157.html
http://blog.163.com/allegro_tyc/blog/static/33743768201667101816858/
https://blog.csdn.net/laughing_cui/article/details/46530785
相关推荐
MQTT服务器和客户端的整合,建议用VS2015以上打开,和线层结合,方便学习理解mqtt的通讯过程
因在工作中经常有用到MQTT做消息的收发,每次调试过程中,经常需要查看接收的消息内容以及人为发送消息,为便于个人在工作中开发和调试,于是,就萌生了自己写一个简单又好用的MQTT服务端和客户端的想法。...
【微信小程序控制硬件第2篇 】 开始微信小程序之旅,导入小程序Mqtt客户端源码,实现简单的验证和通讯于服务器! 【微信小程序控制硬件第3篇 】 从软件到硬件搭建一个微信小程序控制esp8266的项目,自定义通讯协议,...
如何安装由于尚未将其开发为插件,因此安装过程会非常繁琐。 到目前为止,仅支持Windows x64。 确保您的项目针对C ++进行了设置。 如果还不是这种情况,请在Unreal中添加一个简单的C ++ Actor,稍后再删除。 将Third...
配合MQTT服务器使用,文章中以讲了WIN下MQTT服务器的搭建过程,下载了很多MQTT客户端,最好用MQTT客户端,没有之一
mqtt的原理和应用程序开发过程通过本程序就能体现,看懂mqtt的主题订阅发布之后,再去看官方的编程手册开发上手就会很简单啦! #ifndef DIALOG_H #define DIALOG_H #include #include #include "include/...
基于QT的mqtt客户端,有代码,有笔记,上行下行到阿里云,有发布,有订阅。word文档中详细描述了qt代码的写作过程,mqttfx工具的使用,自己制作的qt客户端的使用
基于OPCDAAuto.dll开发的opcda客户端软件,将数据转成mqtt协议上传。 将OPC DA转换为MQTT。 OPC DA(OLE for Process Control Data Access)是一种用于实时数据通信的开放标准协议,它允许不同厂商的设备和软件...
通过本指南,您将学习到如何配置模块的网络参数、搭建 MQTT 服务器、编写客户端代码以及处理 MQTT 通信过程中的错误等。 无论您是初学者还是有经验的开发人员,本应用指导都能为您提供有价值的参考和实用的代码示例...
mqtt协议也支持websocket进行通信,在开发过程中,我们经常遇到mosquitto或者其他mqtt的broker配置websocket之后,不知道能不能用,这里是我们以前写的一个js的测试代码,只要把配置文件的ip地址和端口修改为自己的...
Eclipse Paho MQTT Go客户端 该存储库包含 MQTT 3.1 / 3.11 Go客户端库的源代码。 该代码构建了一个库,该库使应用程序能够连接到代理以发布消息,订阅主题并接收已发布的消息。 该库支持完全异步的操作模式。 ...
覆盖这些: nano-stream-x host=ip6-localhost port=3001启动MQTT客户端nano-stream-mqtt默认情况下,您将连接到mqtt://127.0.0.1 。 要连接到其他主机: nano-stream-mqtt host=mqtts://mosquitto.example.com数据...
1、本例程实现的是W5500为TCP客户端,阿里云ALIYUN为服务端,数据通讯采用MQTT协议。 2、实例展示了从DHCP动态获取IP、连接服务端、MQTT数据通讯、关闭连接等过程。实现了多路继电器数据的上传 3、代码使用KEIL开发...
嵌入式开源项目精选专栏 本专栏由Mculover666创建,主要内容为寻找嵌入式...paho | 支持10种语言编写mqtt客户端,总有一款适合你! MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块 letter-shell | 一个功能强
CoogleIOT ESP8266库,... CoogleIOT库的创建是为了为您希望在IOT设备上执行的大多数常见操作提供一个可靠的封装框架,从而简化了在ESP8266微控制器上构建IOT设备的过程...
MQTT简介 MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议。...该协议需要客户端和服务端,而协议中主要有三种身份:发布者(Pub
在物理连接上,我们有一个额外的过程,它进行网络处理和 MQTT 消息的编码/解码。 连接状态保存订阅字符串列表,即带有通配符。 它还包含将发布的消息发送到的客户端进程。 订阅主题 主题的订阅由每个主题的注册服务...
1、本例程实现的是W5500为TCP客户端,阿里云ALIYUN为服务端,数据通讯采用MQTT协议。 2、实例展示了从DHCP动态获取IP、连接服务端、MQTT数据通讯、关闭连接等过程。实现了DHT12温湿度数据的上传。 3、代码使用KEIL...
golang 协程,开发过程全程做到无 callback 回调,代码可读性更高RPC 支持本地和远程自动切换远程 RPC 默认使用 rabbitmq,未来可以添加更多种类的通信协议网关采用 MQTT 协议,无需再开发客户端底层库,直接套用已...
2、实例展示了从DHCP动态获取IP、连接服务端、MQTT数据通讯、关闭连接等过程。 3、代码使用KEIL开发,当前在STM32F103C8T6运行,如果是STM32F103其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。...