环境搭建

  1、mosquitto所需要的rpm包

  2、c-ares-1.12.0

  3、安装最新的openssl版本

  4、mosquitto-1.4.10

mosquitto需要的rpm包

  

c-ares安装

c-ares源码下载
./buildconf    #提示libtoolize not found.  需要安装libtool,autoconf,automake
./configure
make
make install

用最新的openssl

编译mosquitto提示出错,‘EC_KEY’ undeclared 
代码不支持老的openssl,所以宏定义提示找不到。
使用openssl-OpenSSL_1_1_0.zip版本
 $ ./config
$ make
$ make install
代码不支持老的openssl,所以宏定义提示找不到。
使用openssl-OpenSSL_1_1_0.zip版本
其他程序会用到旧版的openssl,拷贝新的/usr/local/lib/libssl、/usr/local/lib/libcrypto到 /usr/lib/满足兼容

mosquitto使用

编译
make  binary    #只编译二进制文件,不编译man,否则会提示xml错误
src目录下生成mosquitto代理服务器
client目录下生成mosquitto_pub、mosquitto_sub 发布/订阅端。
编译出错一
: Error: Invalid user 'mosquitto'.  错误提示
编译出错二
warning: failed to load external entity "/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl"
compilation error: file manpage.xsl line element import
xsl:import : unable to load /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl
compilation error: file mosquitto..xml line element refentry
解决出错一
adduser mosquitto
解决出错二
yum install  docbook-style-xsl
修改 ./man/manpage.xsl第三行
href="/usr/share/sgml/docbook/xsl-stylesheets-1.75.2/manpages/docbook.xsl"/>
运行/client/mosquitto_pub -t sex -m woman  之后
mosquitto 代理端打印:
[root@localhost src]# ./mosquitto -v
: mosquitto version 1.4. (build date -- ::-) starting
: Using default config.
: Opening ipv4 listen socket on port .
: Opening ipv6 listen socket on port .
: New connection from :: on port .
: New client connected from :: as mosqpub/-localhost (c1, k60).
: Sending CONNACK to mosqpub/-localhost (, )
: Received PUBLISH from mosqpub/-localhost (d0, q0, r0, m0, 'sex', ... (5 bytes))
: Received DISCONNECT from mosqpub/-localhost
: Client mosqpub/-localhost disconnected.
运行/client/mosquitto_sub -t sex  之后
mosquitto 代理端打印:
: New connection from :: on port .
: New client connected from :: as mosqsub/-localhost (c1, k60).
: Sending CONNACK to mosqsub/-localhost (, )
: Received SUBSCRIBE from mosqsub/-localhost
: sex (QoS )
: mosqsub/-localhost sex
: Sending SUBACK to mosqsub/-localhost
mosquitto_sub 端收到订阅的消息:
[root@localhost client]# ./mosquitto_sub -v -t sex
sex woman

待续

  .......

MQTT初步使用的更多相关文章

  1. 物联网传输协议MQTT

    MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务.MQTT是专门针对物联网开发的轻量级传输协议.MQTT协议针对低 ...

  2. 物联网MQTT协议分析和开源Mosquitto部署验证

    在<物联网核心协议—消息推送技术演进>一文中已向读者介绍了多种消息推送技术的情况,包括HTTP单向通信.Ajax轮询.Websocket.MQTT.CoAP等,其中MQTT协议为IBM制定 ...

  3. 常见MQTT服务器搭建[转载]

    简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...

  4. 常见MQTT服务器搭建与试用

    常见MQTT服务器搭建与试用   简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠 ...

  5. Android实现推送方式解决方案 - 长连接+心跳机制(MQTT协议)

    本文介绍在Android中实现推送方式的基础知识及相关解决方案.推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息. ...

  6. 基于mqtt协议实现手机位置跟踪

    Mqtt协议是物联网领域的一个标准协议,具有轻巧,对设备,带宽要求低,可靠稳定的特点,适合用来实现手机定位跟踪功能. 目前我初步搭建起来了整个可运行的框架,大致为如下思路:1.手机端通过位置服务,获取 ...

  7. 转战物联网·基础篇06-深入理解MQTT协议之基本术语

      通过上一节我们对MQTT协议已经有了初步的印象,这一节我们开始深入的理解一下MQTT协议,介绍常用的MQTT 3.1.1版本,5.0版本后面指介绍新增部分即可.这一节我们先介绍MQTT里常用的术语 ...

  8. MQTT研究之EMQ:【CoAP协议应用开发】

    本博文的重点是尝试CoAP协议的应用开发,其中包含CoAP协议中一个重要的开源工具libcoap的安装和遇到的问题调研.当然,为了很好的将EMQ的CoAP协议网关用起来,也调研了下EMQ体系下,CoA ...

  9. MQTT 协议学习: 总结 与 各种定义的速查表

    背景 经过几天的学习与实操,对于MQTT(主要针对 v3.1.1版本)的学习告一段落,为了方便日后的查阅 本文链接:<MQTT 协议学习: 总结 与 各种定义的速查表> 章节整理 MQTT ...

随机推荐

  1. 【MySQL 读书笔记】全局锁 | 表锁 | 行锁

    全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...

  2. 搭建一个MP-demo(mybatis_plus)

    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 搭建一个简单的MP-demo 1.配置pom.xml ...

  3. Linux几大服务

    server0操作: 1.创建/devops目录,并修改其SELINUX安全上下文 # mkdir /devops # vim /devops/1.mp3# chcon -R -t samba_sha ...

  4. codeforces476D

    Dreamoon and Sets CodeForces - 476D Dreamoon likes to play with sets, integers and .  is defined as ...

  5. 代码管理git 工具的话可以使用GitHub桌面端管理git、码云上的代码

    git版本控制  廖雪峰老师的git教程 git是linus 1991年创建了开源的linux...已成为最大的服务器系统软件 集中式的版本控制器:CVS.SVN.ClearCase是IBM的收费软件 ...

  6. 接口测试(jmeter和postman 接口使用)

    接口测试基础知识 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.把前端(client)和后端(server)联系起来,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统 ...

  7. Tornado实现多进程/多线程的HTTP服务

    用tornado web服务的基本流程 实现处理请求的Handler,该类继承自tornado.web.RequestHandler,实现用于处理请求的对应方法如:get.post等.返回内容用sel ...

  8. Springboot文件上传与下载

    一.创建简单的springboot-web项目 二.文件上传属性配置 #默认支持文件上传 spring.http.multipart.enabled =true spring.http.multipa ...

  9. 【AGC030F】Permutation and Minimum DP

    题目大意 有一个长度为序列 \(a\),其中某些位置的值是 \(-1\). 你要把 \(a\) 补成一个排列. 定义 \(b_i=\min(a_{2i-1},a_{2i})\),求有多少种可能的 \( ...

  10. HDU - 3247 Resource Archiver (AC自动机,状压dp)

    \(\quad\)Great! Your new software is almost finished! The only thing left to do is archiving all you ...