Centos 安装MQTT服务器

摘要:
S客户端请求与服务器CONNACK2S建立连接-->C服务器确认连接建立PUBLISH3CóS发布消息PUBACK4CóS接收发布消息确认PUBERC5CóS发布消息PUBERL6Có发布消息PUBCOMP7CóS发布消息完成SUBSCRIBE8C->客户端发送PING命令PINGRSP13S->

MQTT 

1、MQTT (消息队列遥测传输),协议支持所有平台,把所有联网物品和外部连接起来。用来当作传感器和制动器的通信协议。

主要提供订阅/发布两种消息模式,更 简约、轻量、易用。适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发。

MQTT 是基于TCP长连接,首先跟MQTT服务器简历TCP连接,然后发送登陆请求,要保持长连接,还要定时发心跳包跟服务器保持连接。

名字

流向

描述

CONNECT

1

C->S

客户端请求与服务端建立连接

CONNACK

2

S->C

服务端确认连接建立

PUBLISH

3

CóS

发布消息

PUBACK

4

CóS

收到发布消息确认

PUBREC

5

CóS

发布消息收到

PUBREL

6

CóS

发布消息释放

PUBCOMP

7

CóS

发布消息完成

SUBSCRIBE

8

C->S

订阅请求

SUBACK

9

S->C

订阅确认

UNSUBSCRIBE

10

C->S

取消订阅

UNSUBACK

11

S->C

取消订阅确认

PING

12

C->S

客户端发送PING(连接保活)命令

PINGRSP

13

S->C

PING命令回复

DISCONNECT

14

C->S

断开连接

2、数据包结构

固定头(Fixed header):所有 mqtt数据包中,表示 包类型和数据包的分组类标识

可变头(Variable header):部分mqtt数据包中,数据包类型决定了可变头是否存在及其具体内容

消息体(payload):部分mqtt数据包中,表示客户端收到的具体内容。

3、安装mqtt服务器

http://mosquitto.org/files/source/ 下载最新的mosquitto-*.tar.gz 文件

https://codeload.github.com/warmcat/libwebsockets/zip/master 下载 libwebsockets-master.zip

先解压 libwebsockets 并安装

cmake -- 用途是能通过一系列的源码和相关的配置来生成需要的编译器平台上的项目文件。在这里是自动产生makefile文件用的工具。

make install -- 这里用来安装 libwebsockets

ldconfig 辅助命令, root 权限下 在/lib和/usr/lib 里添加库文件,无需将路径添加到 /etc/ld.so.conf 中,需要使用命令 ldconfig ,否则无法找到库文件。

 Centos 安装MQTT服务器第1张

liblocal.conf 内部信息:

 Centos 安装MQTT服务器第2张

安装 mosquitto

根据需要修改 config.mk , 我的没改动。就用的默认的

make install 安装即可

 Centos 安装MQTT服务器第3张

进入 /etc/mosquitto 下

mosquitto -c mosquitto.conf.example 运行 mosquitto

可以看到 mosquitto 版本 1.5 ,开放端口 1883

Centos 安装MQTT服务器第4张

可以设定新的用户名密码:(此步骤可以省略,在测试时候不输入用户名密码即可)

mosquitto_passwd -c pwfile.example testone

aclfile.example 中修改testone 读写topic 权限

 Centos 安装MQTT服务器第5张

新开一个 shell

mosquitto_pub -h localhost -t subtopic -u testone -P testone -m "1212121"

上传消息 pub:本地localhost topic: subtopic 用户名:testone 密码 :testone 发送消息:1212121

 Centos 安装MQTT服务器第6张

新开一个 shell

mosquitto_sub -h localhost -t subtopic -u testone -P testone

接收消息 sub:本地localhost toptic:subtopic 用户名:testone 密码:testone 接收消息:1212121

 Centos 安装MQTT服务器第7张

附一份Java 的 mqtt测试代码:

https://github.com/wgy1109/mqttDemo

MqttTest.java 中描述了Java向mqtt发送消息,以及从mqtt接受消息。

免责声明:文章转载自《Centos 安装MQTT服务器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos平台scp通过密钥远程复制文件(免密登录)git subtree用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python 通过pip freeze、dowload打离线包及自动安装【适用于保密的离线环境】

python的pip是其包管理工具,相当方便好用。本文只介绍pip 如何通过其freeze命令打离线包,及其离线包的安装脚本。这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客户环境。 环境 操作系统: Centos 7.7 python 版本: 2.7 客户网络环境: 离线 研发网络环境:联网 pip 安装 (1)下载rpm包...

Spring Cloud Stream学习笔记

目录 1 环境 2 简介 3 初见 1 创建项目 添加web rabbitmq stream依赖 2 rabbitmq配置 3 消息接收器 4 在rabbitmq中发送消息 5 查看结果 4 自定义消息通道 1 自定义接口 2 自定义接收器 3 controller进行测试 4 消息输入输出(通道对接) 5 启动、访问 5 消息分组 1...

OCR2:tesseract字库训练

由于tesseract的中文语言包“chi_sim”对中文字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。 工具: Java虚拟机,由于jTessBoxEditor的运行依赖Java运行时环境,所以需要安装Java虚拟机。下载地址:http://www.oracle.co...

c#socket发送邮件详解

本文来自http://blog.csdn.net/gaooo/article/details/2027145 邮件发送在web应用中是屡见不鲜的,在asp时代大家多是利用一些第三方提供的组件如JMAIL、ASPMAIL等进行邮件发送。自从微软推出 Asp.net后,很多程序员开始转向采用C#作为主要的开发语言。asp.net提供了更加强大的功能,同时也提供...

Linux基础知识学习:Linux下修改文件名或修改文件夹名称(有待解决问题)

Linux下修改文件名或修改文件夹名称 1、修改文件夹名称 1.1我先创建一个test文件夹用来测试 mkdir test 1.2用 mv 命令 将文件移动,目标地址如果加 / 就 代表文件夹,如果没有 / 就会重新命名 例: mv test Test 表示文件重命名 mv test /Test/ 将test移动到根目录的Test文件夹下 在练...

SpringBoot+RabbitMQ学习笔记(二)使用RabbitMQ的三种交换器之Direct

一丶简介 Direct Exchange 处理路由键。需要将一个队列绑定到交换器上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换器上要求路由键 “test”,则只有被标记为“test”的消息才被转发,不会转发test.aaa,也不会转发dog.123,只会转发test。  业务场景,系统日志处理场景: 1.微服务产生日...