MQTT——安装、测试

MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用         http://blog.csdn.net/xukai871105/article/details/39252653

Android推送方案分析       http://blog.csdn.net/shagoo/article/details/7899466

0 前言

MQTT是IBM开发的一个即时通讯协议。MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制。Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,提供轻量级的,支持发布/订阅的的消息推送模式,使设备对设备之间的短消息通信简单易用。

若初次接触MQTT协议,可先理解以下概念:

【MQTT协议特点】——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制。

【MQTT协议角色】——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT协议中包括发布者,代理器(服务器)和订阅者。

【MQTT协议消息】——MQTT中的消息可理解为发布者和订阅者交换的内容(负载),这些消息包含具体的内容,可以被订阅者使用。

【MQTT协议主题】——MQTT中的主题可理解为相同类型或相似类型的消息集合。

1 安装和使用注意点

1.1 安装

截止2015年12月,最新版本为mosquitto-1.4.5

# 下载源代码包

wget http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz

# 解压

tar zxfv mosquitto-1.4.5.tar.gz

# 进入目录

cd mosquitto-1.4.5

# 编译

make

# 安装

sudo make install

1.2 安装注意点

【1】编译找不到openssl/ssl.h

【解决方法】——安装openssl

sudo apt-get install libssl-dev

【2】编译过程找不到ares.h

sudo apt-get install libc-ares-dev

【3】编译过程找不到uuid/uuid.h

sudo apt-get install uuid-dev

【4】使用过程中找不到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

【5】make: g++:命令未找到

【解决方法】

安装g++编译器

sudo apt-get install g++

2 简单测试

一个完整的MQTT示例包括一个代理器,一个发布者和一个订阅者。测试分为以下几个步骤:

【1】启动服务mosquitto。

【2】订阅者通过mosquitto_sub订阅指定主题的消息。

【3】发布者通过mosquitto_pub发布指定主题的消息。

【4】代理服务器把该主题的消息推送到订阅者。

【测试说明】

测试环境:ubuntu 15.04 虚拟机

在本例中,发布者、代理和订阅者均为localhsot,但是在实际的情况下三种并不是同一个设备,在mosquitto中可通过-h(--host)设置主机名称(hostname)。为了实现这个简单的测试案例,需要在linux中打开三个控制台,分别代表代理服务器、发布者和订阅者。

2.1 启动代理服务

mosquitto -v

【-v】打印更多的调试信息

2.2 订阅主题

mosquitto_sub -v -t sensor

【-t】指定主题,此处为sensor

【-v】打印更多的调试信息

2.3 发布内容

mosquitto_pub -t sensor  -m 12

【-t】指定主题

【-m】指定消息内容

2.4 运行结果

当发布者推送消息之后,订阅者获得以下内容

sensor 12

而代理服务器控制台中会出现——连接、消息发布和心跳等调试信息。通过代理服务器的调试输出可以对MQTT协议的相关过程有所了解。

时间: 2024-12-11 13:25:42

MQTT——安装、测试的相关文章

Ubuntu 16.04安装测试MQTT Mosquitto

环境:Ubuntu 16.04 一. MQTTMQTT 是一个轻量级即时通信协议,使用基于 TCP/IP 协议的发布/订阅消息转发模式, MQTT 协议的中心是 broker( 服务器/代理),客户端通过订阅消息和发布消息进行数据交互. 若初次接触MQTT协议,可先理解以下概念: [MQTT协议特点]——相比于RESTful架构的物联网系统,MQTT协议借助消息推送功能,可以更好地实现远程控制. [MQTT协议角色]——在RESTful架构的物联网系统,包含两个角色客户端和服务器端,而在MQTT

centos6.5 mqtt安装

CentOs 6.5 MQTT 安装部署 所需安装包: libwebsockets-v1.6-stable.tar.gz,mosquitto-1.4.8.tar.gz 1.安装依赖 # yum -y install gcc gcc-c++ openssl-devel  c-ares-devel libuuid-devel wget cmake 2.为mosquitto增加websocket支持,需要安装websocket库文件 下载websocket,我用的是 libwebsockets-v1.

微软桌面虚拟化vdi 安装测试体验

最近同事在讨论桌面虚拟化,说目前很多企业都准备上桌面虚拟化,结合众多的解决方案,觉得微软的桌面虚拟化方案不错,相对与citrix的xendesktop,vmware view 有一定的价格优势,心里想,微软是大公司,桌面虚拟化技术即使没有citrix和vmware的好,但一定也不会差,所以我们采用性价比高的. 本次的测试环境是2台Dell R720服务器(据说该服务器是全世界销量最好的,不知道真假),服务器操作系统安装windows server 2012 R2,虚拟桌面端安装windows 7

安装测试知识(待更新)

1.    安装测试 1.1定义 安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的操作完成安装的过程所进行的测试. 1.2安装测试的分类 安装测试可以分为: (1)全新安装,待安装的软件包是完整的,包含了所有的文件. (2)升级版本安装,部分文件构成的软件包.升级安装也可以分为两种,一种是完全替换原来版本,另外一种就是保持多种版本共存. (3)补丁式安装,很小的改动或很少文件的更新. (4)软件版本不变 系统运行环境改变,

MQTT压力测试工具之JMeter插件教程

摘要: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)主要用于移动Push,移动IM,物联网M2M,物联网采集等,这些应用场景的特点是客户端的连接设备数比较多,那么如何在系统上线之前验证系统能否承受预先设计的压力呢? MQTT简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物

Centos 6.7 Tomcat基本安装测试

Tomcat基本安装测试 /==============================基本安装使用=========================================>/ Tomcat A 设置 安装jdk http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html下载JDK 1.1安装jdk ~]# rpm -ivh jdk-7u67-linux-x64.rpm Preparing.

php管理工具composer安装&测试

我把它放在系统的PATH目录中,这样就能在全局访问它. curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 此命令只检查少量的PHP配置,然后下载 composer.phar 文件到你的工作目录,此文件就是Composer执行文件,它是一个PHAR(PHP归档文件,里面可以包含任何文件,并且可以在PHP命令行执行). 测试是否安装成功 composer -V Compo

centos7主要特性 ---docker安装测试

红帽日前正式发布了企业版Linux 7,满足企业当前对数据中心的需求和对下一代的云服务.Containers.大数据的需求,为用户提供军用级安全以及稳定.易用.高效的管理.社区发行版CentOS 7也已经发布出来了,抢先体验docker1.0. rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装docker      yum install docker-io 启动服务    

Redis集群方案,Codis安装测试

1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twemproxy对于上一层的应用来说, 连接Codis Proxy(Redis代理服务)和连接原生的Redis服务器没有明显的区别,上一层应用能够像使用单机的 Redis一样对待.Codis底层会处理请求的转发.不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的.总之,可以简单的认为后台连接的是一个内存无限大的Redis服

node.js 安装 测试

2014年5月1日 18:48:01 安装: 系统是centos,里边的python版本是2.4,但是node.js 源码tar包安装要求是 2.6 或者 2.7 下载python 2.7编译安装,注意,可以不卸载原有系统中的python,编译安装2.7时,默认安装,不要在配置时指定安装路径 默认安装的时候,2.7会自动改写软连接将/usr/local/bin/python 指向2.7 这样安装node.js的时候就会使用python2.7的程序了 ------------------- 测试: